分支管理大纲:
分支就相当于是工厂里的流水线,分支之间是互相不会影响的。
掌握Git工作流(一)--git基本操作
掌握Git工作流(二)--git分支管理
掌握Git工作流(三)--git工作流
一. git 分支基本操作
也可以理解为两条流水线;
HEAD是指向当前分支,分支才指向当前的版本。
创建并切换分支的过程如下:
创建分支是创建一个dev的指针指向节点,切换分支就是用HEAD来指向dev分支。
master还在原来的位置
git checkout master相当于是直接让HEAD指向了master分支;
合并相当于是对HEAD以及master直接进行操作,使它们移动到dev的分支上;
快速合并就是把指针直接挪动到当前的版本节点。
二. git 分支解决冲突
有些时候,合并分支并不是总是成功的。
现在的图是这种情况:
在两个分支上都有了新的提交,并且编辑的都是同一个文件,在合并时就会起冲突,冲突必须手动的进行解决,并进行一次新的提交
小结:
在合并分支时,可能会起冲突。解决办法就是先通过git status找到冲突是在哪个文件中,接着手动解决完冲突的文件后,再次提交即可。
三.git分支分支管理策略
注:此时合并dev得内容到master不会产生冲突。当两个分支都有各自得提交,并且编辑同一个文件时才会有冲突。但是此时不会起冲突,但是不能快速提交。当快速合并不能成且没有冲突得时候,此时会在合并之后做一次新的提交。
上述过程如图所示:
会出现一个弹窗得信息:
输入合并信息:
通过Ctrl + X 保存并退出
此时效果如图:
创建并切换到dev分支如图所示,将HEAD移过来,指向dev分支:
对应如图所示:
将HEAD重新移动到master上面:
现在如果直接使用git merge dev的话,其会执行快速合并,因为dev分支上有提交记录,master分支上还没有。
但是有时我们为了保存提交的记录,我们需要手动的禁止快速合并。
禁止快速合并之后,它就会合并后重新做一次新的提交,那么新提交需要有一个说明信息,就在-m后面加上说明信息。
对应的图如下,将之前的master更新往上移动:
问:快速合并和禁止快速合并的模式有什么不同?
快速合并在git log 中不显示合并的记录。
那么什么时候我们会禁止快速合并模式呢?
因为此时你手上的工作还没有完成,所以不能进行直接提交。
此时再通过git status来看,工作区就变干净了。