0.背景:
我们经常会面临这样的情况,我们从master分支拉取代码,在本地创建分支local_feature_xxx,开发过程中,会将本地代码推送到远程分支remote_feature_xxx备份,等开发完成之后,需要合并到远程分支,但此时远程分支已经有很多commit,remote_feature_xxx直接合并会有很多的冲突,需要手动解冲突,需要在本地解完冲突之后,再推送到remote_feature_xxx,然后再提MR。
1.方法:
首先确认当前本地分支变更已经提交到远程分支,git status:
git status 确认本地分支已提交如果不放心,可以使用git diff 比较一下两个分支的区别:
git diff local_feature_xxx origin/remote_feature_xxx
确认本地分支与远程分支对应之后,需要将需要合并的远程分支拉取到本地:
git fetch origin master:temp
将本地分支命名为temp分支
而后对比temp分支与local_feature_xxx之间的区别:
git diff local_feature_xxx temp
而后,在local_feature_xxx上合入temp分支(注意不是在temp分支上合入local_feature_xxx):
git merge temp
接下来,解冲突:
a123
<<<<<<< HEAD
b789
=======
b45678910
>>>>>>> 6853e5ff961e684d3a6c02d4d06183b5ff330dcc
<<<<<<<HAED和=======之间的内容是你的变更,=======和>>>>>>> 6853e5ff961e684d3a6c02d4d06183b5ff330dcc之间的内容是别人的变更,选择一个留下即可。
解决完冲突之后,需要将变更提交到远程分支remote_feature_xxx:
git add .
git commit -m 'your comment'
git push origin local_feature_xxx:remote_feature_xxx
而后,从remote_feature_xxx分支提MR到master分支即可。
网友评论