• git分支应用和多人协作


    git分支应用和多人协作

    1.知识百科

      Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
      git 包含了完善的客户端和服务端,客户端和服务端之间通过某种安全通信 协议(HTTPS 或者 SSH)进行文件的上传和下载。
       git工具安装和基本使用参考:ubuntu下git配置和基本使用
    在这里插入图片描述

    2.git分支

      分⽀就是科幻电影⾥⾯的平⾏宇宙,当你正在电脑前努⼒学习Git的时候,另⼀个你正在另⼀个平⾏宇宙⾥努⼒学习SVN。两者之间可以同时执行。
      分⽀在实际中有什么⽤呢?假设你准备开发⼀个新功能,但是需要两周才能完成,第⼀周你写了50%的代码,如果⽴刻提交,由于代码还没写完,若直接提交则会导致代码不完整影响其他人工作。但若等所有代码写完再一次性提交,⼜存在丢失每天进度的巨⼤⻛险。而有了分支的产生,就可以创建一个属于自己的分支,只有自己才能看到分支内容,别⼈看不到,还继续在原来的分⽀上正常⼯作,⽽你在⾃⼰的分⽀上干活,想提交就提交,直到开发完毕后,再⼀次性合并到原来的分⽀上,这样,既安全,又可以多人协作开发,互不影响。
      在没有分支之前,master分⽀是⼀条线,Git⽤master指向最新的提交,再⽤HEAD指向master,就能确定当前分⽀,以及当前分⽀的提交点:
    在这里插入图片描述
      每次提交,master分⽀都会向前移动⼀步,这样,随着你不断提交,master分⽀的线也越
    来越⻓。
      当我们创建新的分⽀,例如dev时,git新建了⼀个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表⽰当前分⽀在dev上:
    在这里插入图片描述
      当有了dev分支,我们就可以通过改变HEAD指向来操作不同分支,当HEAD指向dev分支时则只能操作dev。当我们工作完成后,就可以将master和dev分支合并,即直接让master指向dev提交分支。甚至可以直接删除dev分支。
    在这里插入图片描述

    3.创建分支

    $ git branch dev //创建分支
    $ git checkout dev //切换分支
    $ git branch  //查看分支
    * dev  
      master
    $ git branch -d dev //删除分支
    $ git checkout -b dev //创建一个分支dev,并切换到当前分支下
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

      *表示当前所处于的分支位置。

    3.1 创建分支示例

    $ touch 1.txt //创建新文件
    $ git checkout -b dev  //创建dev分支并切换当当前分支下
    $ git add 1.txt //添加1.txt
    $ git commit -m "分支应用实例"  //编写提交说明
    [dev 8873ebd] 分支应用实例
     1 file changed, 1 insertion(+)
     create mode 100644 1.txt
    $ git push origin dev  //提交到dev分支
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述
    在这里插入图片描述

    3.2 合并分支并提交

    $ git checkout master //切换到主分支
    $ git merge dev  -m "分支合并" //合并分支,将dev分支合并到主分支
    更新 38d25e9..8873ebd
    Fast-forward
     1.txt | 1 +
     1 file changed, 1 insertion(+)
     create mode 100644 1.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    $ git add -A
    $ git push origin master //将合并内容提交到主分支
    
    • 1
    • 2

      合并并且提交到主分支成功后则可删除dev分支

    $ git branch -d dev 
    已删除分支 dev(曾为 8873ebd)。
    
    • 1
    • 2

    4.分支冲突问题

    4.1 创建dev分支并提交

    $ git checkout -b dev  //创建分支并切换到dev分支下
    $ vim 1.txt  //打开1.txt 添加内容
    git 分支测试
    git 分支冲突测试
    $ git add 1.txt  //添加1.txt
    $ git commit -m "分支冲突测试"  
    $ git push origin dev  //提交到dev分支
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    4.2 修改主分支并提交

    $ git checkout master //切换到主分支
    $ vim 1.txt //修改1.txt文件
    git 分支测试
    主分支测试
    $ git add 1.txt 
    $ git commit -m "主分支提交测试"
    $ git push origin master  //修改内容提交到主分支
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    4.3 合并分支

    $ git merge dev -m "分支合并" //合并分支
    自动合并 1.txt
    冲突(内容):合并冲突于 1.txt
    自动合并失败,修正冲突然后提交修正的结果。
    $ git status  //查看状态
    位于分支 master
    您的分支与上游分支 'origin/master' 一致。
    
    您有尚未合并的路径。
      (解决冲突并运行 "git commit")
      (使用 "git merge --abort" 终止合并)
    
    未合并的路径:
      (使用 "git add <文件>..." 标记解决方案)
    
    	双方修改:   1.txt
    
    修改尚未加入提交(使用 "git add"/"git commit -a"
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

      打开1.txt文件可查看到主分支和dev分支的修改内容。
    在这里插入图片描述
      由于主分支和dev分支都对1.txt文字做出修改,导致分支自动合并失败,此时就需要手动解决分支冲突问题。我们打开1.txt文件就可以看到主分支和dev分支的修改状况,我们需要手动合并。

    $ vim 1.txt 
     git 分支测试
     主分支测试
     git 分支冲突测试
    $ git add 1.txt 
    $ git commit -m "解决合并冲突问题"
    $ git push origin master //重新提交
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述
      当我们在合并分支时,遇到自动合并失败,则可以通过git status 查看状态信息,查看出现合并失败的问题文件,然后收合并分支,再次添加提交文件,编写提交说明重新提交即可。
      在实际开发中,我们应该按照⼏个基本原则进⾏分⽀管理: ⾸先,master分⽀应该是⾮常稳定的,也就是仅⽤来发布新版本,平时不能在上⾯干活; 那在哪干活呢?干活都在dev分⽀上,也就是说,dev分⽀是不稳定的,到某个时候,⽐如 1.0版本发布时,再把dev分⽀合并到master上,在master分⽀发布1.0版本; 你和你的⼩伙伴们每个⼈都在dev分⽀上干活,每个⼈都有⾃⼰的分⽀,时不时地往dev分 ⽀上合并就可以了。
      所以,团队合作的分⽀看起来就像这样:
    在这里插入图片描述

    5.多人协作

      Git是一个开源的分布式版本控制系统,可以有效的完成版本管理和多人协作开发。要实现多人协作则需要在服务器端添加协作人员。
      在仓库管理中可以添加开发者人员,设置代码审核人员和分支合并审核。
    在这里插入图片描述

  • 相关阅读:
    Redis启动时提示Creating Server TCP listening socket *:6379: bind: No error
    Python爬虫技术与反爬虫策略
    Centos生命周期,Centos和Centos Stream区别
    win10超好看的鼠标主题,你也来试试吧
    Kafka实现保证一批消息顺序生产消费的方案
    分享一个比对图片是否一致的小工具(来源: github)
    Gitee的使用
    Java之@Autowired再分析
    考研数学一二三 2010-2019年每道题的难度系数
    python自动化测试(二):xpath获取元素
  • 原文地址:https://blog.csdn.net/weixin_44453694/article/details/126671980