版本管理系统Git

关注公众号“轻松学编程”了解更多。

git下载链接:https://pan.baidu.com/s/12vJn-K0lK9XlkVQbNe8S-A 密码:m4mt

图形界面客户端链接:https://pan.baidu.com/s/1SM-qdo_JZluotoeAoTNyBw 密码:picl

常用图形界面:SourceTree

Git常用基本命令

git checkout 分支名    #切换分支
git checkout -b 分支名 #创建分支并切换到该分支
git push origin --delete 分支名 #删除远程分支
git branch -a #查看所有分支
git branch -D 分支名 #删除本地分支,注意先切换到到其它分支

将master分支内容提交合并到dev分支

git checkout master  #切换到本地分支
git pull #拉取远程文件到本地
git add . #提交到本地
git commit -m 'merge'
git checkout dev #切换到dev分支
git merge master #合并
git push origin dev #推送到远程分支
1、版本控制工具优势
  • 查看版本历史记录

    • 查看成长记录
    • 版本回退
    • 明确责任人
  • 多人协作开发
    • 同步团队其它成员的代码
    • 在自己的分支上工作
  • 中心化和分布式
    • 中心化(SVN):代码管理服务器在一台核心服务器上,所有人都必须和代码服务器保持网络连通
    • 分布式(Git):中心仓库是GitHub,可以有很多本地仓库
2、GitHub的注册与使用
  • Clone与Fork

  • Download

  • Git的安装与配置

    • 下载:https://git-scm.com/download/
    • git config --global user.name “xxx”
    • git config --global user.email “xxx”
3、Git常用命令
  • 本地仓库

    • 创建本地仓库

      • cd xxx #这里的xxx路径,是Linux风格路径,Windows上可以使用拖拽文件夹的方式自动形成
      • git init
    • 本地提交
      • git add xxx
      • git commit xxx -m “xxx”
    • 比较和查看日志
      • git status
      • git diff
      • git log
        • git log --pretty=oneline
      • git reflog #查看所有分支的所有操作记录(包括被删除的)
    • 版本回滚
      • git reset --hard

        • HEAD^
        • HEAD^^
        • HEAD~100
        • 具体版本号
      • git checkout – filename #检出文件(注意空格)
        • 如果add但没有commit时,检出的是缓存区的内容
        • add且commit了时,检出的是版本区的内容
        • 优先检出缓存区而不是版本区
    • 添加忽略
      • touch .gitignore
      • vim .gitignore
        • i // 进入编辑模式
        • esc,: // 进入命令模式
        • 在冒号后输入wq // 保存退出命令
  • 添加公钥到github账号
    • ssh-keygen -t rsa -C “your email”
    • cat id_rsa_pub
    • ssh-agent bash
      • 启动ssh-agent
    • ssh-add sirouyang
      • 绑定私钥
    • ssh -T git@github.com
      • 秘钥配对测试
  • 本地仓库关联远程仓库
    • cd local_repo_path
    • git remote add origin your_repo_address
    • git remote rm origin
    • git pull origin master
      • –allow-unrelated-histories #同意合并不相干的历史时
    • git push origin master
  • 操作远程仓库
    • git clone your_repo_address

      • #注意克隆下来的分支只是master分支,在分支上工作需要克隆后再做一下拉取分支的工作
    • git add .
    • git commit . -m “xxx”
    • git push origin master
  • 分支
    • 分支相关命令

      • -----↓创建和切换分支-----
      • git branch #查看所有分支
      • git branch 分支名 # 创建本地分支
      • git checkout 分支名 #切换到指定分支
      • git checkout -b 分支名 #创建并切换到分支
      • -----↓删除分支-----
      • git branch -d 分支名 #删除本地分支
      • git push origin --delete 分支名 # 删除远程分支
      • -----↓推拉分支-----
      • git pull origin 分支名 #拉取分支
      • git push origin 分支名 #推送分支
      • git push --set-upstream origin 分支名 #推送分支
      • -----↓合并分支-----
      • git merge 分支名 #合并分支(要先checkout到主分支)
      • -----↓查看合并历史-----
      • git log --graph #查看分支合并图
      • git log --graph --all // 命令行查看分支合并图
      • gitk --all // gitk工具查看分支合并图
      • git gui(启动后:repository–>visual all branch history) // gui工具查看分支合并图
    • 分支合并策略
      • master只要稳定上线版
      • dev是开发版,稳定后合并到master
      • 其余分支一边开发一边合并到dev
    • 分支案例
      • 张三克隆项目
      • 张三创建分支并push
      • 张三独自开发、提交、push
      • 历时做和张三相同的事情
      • dev分支合并张三分支
      • dev分支push
      • master合并dev分支
      • master分支push
4、解决冲突
  • 冲突案例

    • master提交公共资源
    • 张三拉取并修改公共资源
    • 张三提交并push分支
    • 李四拉取并修改公共资源,意见与张三不一致
    • 李四提交并push分支
    • dev合并张三分支
    • dev合并李四分支
    • dev处理冲突
    • dev提交并push分支
    • master合并dev分支
    • master分支push
  • 两个成员修改了相同文件的相同代码段,冲突爆发时机:
    • dev进行合并时
    • 拉取冲突分支的代码
    • 相同分支上的不同账号,后提交的那一个会发生冲突
  • 解决:删除冲突标记+修改为意见统一的代码
5、标签
  • git tag # 查看所有标签
  • git tag v1.0 # 给当前版本打标签,名称是任意的
  • git tag -d v1.0 # 删除指定标签(它对应的版本序号依然是存在的)
  • git push origin v1.0 # 推送标签到远程仓库
  • git push origin --tags # 一次性推送多个标签到远程
  • git checkout v1.0 # 切换到指定标签所对应的版本
  • git show v1.0 # 查看标签信息
6、多人协作开发
  • 添加公钥到github账号

    • ssh-keygen -t rsa -C “your email”
    • cat id_rsa_pub
    • ssh -T git@github.com // 测试提交权限
  • 添加成员公钥
    • 1、生成秘钥对
    • 2、让协作的github账号添加你的公钥
    • 3、切换Git注册的私钥
      • ssh-agent bash // 启动秘钥管理客户端
      • ssh-add your_private_key // 切换Git注册的私钥
    • 4、ssh -T git@github.com // 测试提交权限,测试通过则已经具有协作账号的提交权限
    • 团队其它成员如法炮制
  • 工作流程
    • 创建远程仓库
    • 创建dev分支,创建成员分支
    • 可选:为团队所有成员创建分支,他们各自clone并pull自己的分支
    • 各自克隆仓库到本地
    • 切换到各自自己的分支上工作
    • 每天至少一次提交代码到本地仓库
    • dev分支定期合并成员分支,并提交测试
    • dev分支通过测试后合并到master上线

后记

【后记】为了让大家能够轻松学编程,我创建了一个公众号【轻松学编程】,里面有让你快速学会编程的文章,当然也有一些干货提高你的编程水平,也有一些编程项目适合做一些课程设计等课题。

也可加我微信【1257309054】,拉你进群,大家一起交流学习。
如果文章对您有帮助,请我喝杯咖啡吧!

公众号

关注我,我们一起成长~~

【参考文章】
https://blog.csdn.net/u010986776/article/details/79827624
https://blog.csdn.net/u010986776/article/details/79827399
https://blog.csdn.net/u010986776/article/details/79827082
https://blog.csdn.net/u010986776/article/details/79823699
https://blog.csdn.net/u010986776/article/details/79823616

git版本管理系统使用的更多相关文章

  1. 版本管理系统:svn和git

    svn是常用的版本管理系统,解决团队协作开发和版本管理问题, 一.服务器端:是一个文件存储仓库,可以设置用户并管理其访问的权限.主要功能包括 ①设置文件存储路径,是管理文件版本的基础 ②设置用户:可以 ...

  2. git分布式版本管理系统

    Git是分布式版本管理系统Svn是集中式版本管理系统 git速度快,适合大规模协同开发 什么是分布式版本管理系统 假如有10个人,每个人的代码库都是独立的,自己想进行代码提交回滚都可以,无需链接中央服 ...

  3. 详解在Visual Studio中使用git版本系统[转]

    这篇教程的预期,是希望没有任何版本使用基础的新手也可以掌握,所以细节较多,不当之处,欢迎指正. 一 .安装 git 开发工具 如果要使用 git 进行版本管理,其实使用 git 命令行工具就完全足够了 ...

  4. Git版本控制软件结合GitHub从入门到精通常用命令学习手册(转)

    简要参考:http://www.tuicool.com/articles/mEvaq2 http://gitref.org/zh/index.html GIT 学习手册简介 本站为 Git 学习参考手 ...

  5. 详解在visual studio中使用git版本系统(图文)

    很多人已经在使用git(或正在转移到git上),在github.com上,也看到园子里不少同学的开源项目,非常不错.但相关教程似乎不多,所以趁着我自己的开源项目源码托管(https://github. ...

  6. 在visual studio中使用git版本系统(zz)

    第一部分: 安装 git 开发工具 如果要使用 git 进行版本管理,其实使用 git 命令行工具就完全足够了,图形化工具(无论是 git extentions ,还是TortoiseGit),都只不 ...

  7. 【转】详解在visual studio中使用git版本系统(图文)

    http://blog.csdn.net/wojilu/article/details/6976230 很多人已经在使用git(或正在转移到git上),在github.com上,也看到不少国内同学的开 ...

  8. Git版本控制系统VCS

    Git版本控制系统VCS 一.版本控制系统基本情况说明 版本控制是一种记录一个或者若干个文件内容的变化,以便将来查阅特定版本修订情况的系统 1.作用 记录文件的所有历史变化 随时可回复到任何一个历史状 ...

  9. Dubbo入门到精通学习笔记(三):持续集成管理平台之SVN版本管理系统的安装和使用

    文章目录 持续集成管理平台介绍 持续集成介绍 持续集成管理平台的组成 持续集成实践介绍 即将学习 SVN版本管理系统的安装 安装 Subversion + Apache 安装 jsvnadmin 简单 ...

随机推荐

  1. 【代码审计】JAVA代码审计

    分享一些Java安全相关文章,其中大部分都涉及到代码的分析与审计. 大家总是在找Java的代码审计的文章,但好像很多人选择性失明. 其实Java没有和PHP一样的简单,所以你觉得你看到的文章不是入门级 ...

  2. sprintf_s() 、sprintf()和printf()区别和用法

    转载:https://blog.csdn.net/qq_35608277/article/details/80878802 int sprintf_s(char *buffer,size_t size ...

  3. 头文件.h的作用

    参考链接http://www.cnblogs.com/webcyz/archive/2012/09/16/2688035.html懒得复制过来

  4. 【题解】[USACO07OPEN]Dining G

    \(Link\) \(\text{Solution:}\) 这一题,我们要做到,食物和牛.牛和饮料均为一对一的关系.我们发现这个图不好建立. 经典技巧:将牛拆边,拆成入点和出点,并连容量为\(1\)的 ...

  5. python 中的三种等待方式

    为什么要用等待时间: 今天在写App的自动化的脚本时发现一个元素,但是往往执行脚本是报错( An element could not be located on the page using the ...

  6. VueCroppie

    下载 VueCroppie VueCroppie是一个Vue 2包装Croppie一个美丽的照片裁剪工具的Javascript由foliotek. 安装 NPM 安装vue-croppie-保存 CD ...

  7. day64:nginx模块之限制连接&状态监控&Location/用nginx+php跑项目/扩展应用节点

    目录 1.nginx模块:限制连接 limit_conn 2.nginx模块:状态监控 stub_status 3.nginx模块:Location 4.用nginx+php跑wordpress项目 ...

  8. Centos 6.9安装 php5.6 过程中报错:Error: Package: php56w-mcrypt-5.6.40-1.w6.x86_64 (webtatic)

    在 CentOS 6.9 系统下安装 php 5.6 的过程中,执行如下命令: yum -y install php56w-pdo php56w-xml php56w-gd php56w-gd.x86 ...

  9. Pycharm开发环境配置与调试

    在Windows宿主机上搭建Ubuntu虚拟机的Pycharm开发环境,Ubuntu开启Samba服务,使用网络映射将Ununtu下Python项目工程路径映射到Windows下 创建Pycharm工 ...

  10. Redis 客户端 Jedis、lettuce 和 Redisson 对比

    Redis 支持多种语言的客户端,下面列举了部分 Redis 支持的客户端语言,大家可以通过官网查看 Redis 支持的客户端详情. C语言 C++ C# Java Python Node.js PH ...