我有一个分支
master
和一个从feature
签出的分支master
。
master
从其他开发人员那里获取提交,我定期将 master
合并回 feature
,以便它跟上其他分支的新开发。
但是,每次执行
git merge master
时,我都会在同一文件中遇到相同的冲突,尽管我之前解决了冲突并提交了更改。
对于造成这种情况的原因以及如何预防有什么想法吗?
谢谢!
首先考虑不要将集成分支合并到功能分支中。
再次查看 git rerere 命令并使用它:
$ git config --global rerere.enabled true
姓名
git-rerere - Reuse recorded resolution of conflicted merges
描述
In a workflow employing relatively long lived topic branches, the developer sometimes needs to resolve the same conflicts over and over again until the topic branches are done (either merged to the "release" branch, or sent out and accepted upstream)
迈克提到过这一点,但我认为它值得自己回答
rerere
是一个很好的解决方案,但我认为有一个更好的解决方案:使用 git rebase
。
您的
feature
分支对合并到master
一无所知,因此当您再次合并它时,它会再次遇到相同的冲突。
相反,
rebase
您的功能分支到master
,然后在fast-forward
上执行merge
master
。
冲突解决现在发生在 rebase
期间,这是 master
和 feature
的共同过去,并且您不再看到任何冲突。