(四)rebase合并分支——如何优雅的使用git

问题出现:
小王作为开发人员,需要将自己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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容