问题出现:
小王作为开发人员,需要将自己dev_wang分支上已经完成开发的功能,同步到dev分支,于是小王切换到dev分支并执行了git merge dev_wang,由于dev分支是几个小组公用的版本分支,其他小组在此之前更新过dev分支,导致小王的merge出现冲突,小王处理冲突后进行了提交,于是提交记录如下,无论如何处理,dev分支上总是会出现一条处理冲突的记录,或者是一条merge记录,有没有办法避免这两种额外产生的“不良”记录呢呢?

image.png
如果其他小组的改动与小王组的修改内容没有冲突,那么git会提示小王为本次merge添加备注,最终的提交记录如下:

image.png
问题解决:
小王在使用git merge记录之前,可以先git rebase命令将dev_wang进行变基操作:
1.切换到要变基的分支dev_wang,执行git rebase dev,该命令将dev的拉取分支的基点推后到当前dev节点

image.png
2.变基操作会依次对比每个dev_wang新的提交与dev的不同,需要我们依次处理,每次处理后使用git add .添加到stage中,然后执行git rebase --continue继续处理下一个dev_wang的提交,直至自动退出git rebasing状态为止(下图为rebasing状态),其中我们可以随时使用git rebase --abort退出git rebasing

image.png
3.结束rebase后,需要将处理好的dev_wang代码推送到远端,然后执行git push发现,what? 推送不上去?不要灰心!执行git push -f,这就是为什么要拉取个人分支进行开发的原因,永远不用担心覆盖别人的代码

image.png
4.切换到dev分支,执行git merge dev_wang,然后推送到远端,再查看dev的提交记录可以发现,并没有产生任何“不良记录”,我们的代码记录又干净了。

image.png