一、前几天开发代码,遇到了个问题:
分支结构:
master-------dev1
|
|-------dev2
dev1开发完了准备发布。
dev2继续新功能。
然后,dev1版本发布完了需要合并到dev2中,如何合并?
我当时采取的措施是:
①切换到master,把dev1 merge 到master中
②然后再切换到dev2中,把master rebase到dev2中即可
二、遇到问题
然而,第一步没问题,第二步出错了。如图:
三、分析解决
因为dev2的代码与dev1中的代码不同,但是又出自同一个根节点。有修改到同一个文件导致冲突。所以报错需要手动修改解决冲突。
图中
CONFLICT(content):Merge conflict in ******.java表示该文件有冲突。
图中
Resolve all conflicts manually, marke them as resolved with
"git add/rm <conflicated_files>", then run "git rebase --continue".表示需要先手动去解决冲突,
再执行"git add ."最后执行git rebase --continue。
备注:
git rebase --continue 就相当于 git commit,
所以最后直接使用git push即可推送到origin
然后我使用了idea的git界面的功能,找到 Git-->Resolve conflicts功能,手动合并了这个冲突文件。
四、补充:
1. 当然,如果有新功能急需补充到各个分支,网上更建议的做法是:
重新开发一个新的分支,例如起名叫hotfix,然后分别使用merge命令,合并到两个dev1和dev2中即可
2. 附上一张git开发管理思路图,相信很多人能用上(一定要仔细看其中的英文每一个单词都很有意义哈哈哈哈!!):
3. 解决问题过程中参考了这几篇博客,也建议查阅一下:
https://blog.csdn.net/qq_27631797/article/details/85237894
https://blog.csdn.net/HD243608836/article/details/117673541
https://blog.csdn.net/HD243608836/article/details/117674753