git 版本控制的入门操作(五)------ 分支冲突、分支管理策略、bug分支

 

git 版本控制的入门操作(一)------ 安装、加入、提交、回退

 

git 版本控制的入门操作(二)------工作区、版本库、管理修改、撤销修改 

 

git 版本控制的入门操作(三)------ 对比文件的不同、删除文件 

 

git 版本控制的入门操作(四)------ 分支管理

 

git 版本控制的入门操作(五)------ 分支冲突、分支管理策略、bug分支 

 

分支冲突

  如果两个分支都修改了文件code.txt,并加入提交,那么怎么合并呢?

  

  可以看出双方都修改了code.txt起了冲突。解决办法如下:

  git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们修改如下后保存

  

  使用git log 查看合并的过程:git log --graph --pretty=oneline

  

  这里有版本名的重复问题,不过用版本号是可以区分的。

 

分支管理策略

  通常,合并分支时,如果可能,git会用fast forward模式,但是有些快速合并并不能成,这个时候会合并之

后并做一次新的提交。但这种模式下,删除分支后,会丢掉分支信息。

  出现如下的情况这是因为这次不能进行快速合并,所以git提示输入合并说明信息,输入之后合并内容之后git会自动

创建一次新的提交。

  

  你可以输入合并之后的版本名,然后离开。使用分支命令查看分支信息

  

  注意观察Merge branch 'dev'版本,就是上面的这种情况,master分支是版本四,dev分支是dev版本,合并

之后出现上面的情况,我默认了离开取消,所以名字是默认的。

  上面的内容可能你觉得麻烦,当然你也可以使用命令默认禁止使用快速合并:

  git merge  --no-ff  -m  '版本名'  dev

 

Bug 分支

  在git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,

然后将临时分支删除。

  git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作。可用于手头工作

还没有结束,但是必须马上去修复Bug。比如我现在在dev分支上工作,任务还没有完成,但是我要去修复Bug了。

则先stash手头工作,再去出Bug的分支创建一个bug分支。

  

  回到工作分支如何继续工作呢?可以使用:git stash pop

  

  修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;当手头工作没有完成时,先把工

作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

posted @ 2018-05-27 18:14  巴蜀秀才  阅读(263)  评论(0编辑  收藏  举报