我有一个本地分支feature
,为了使将来合并到master
更容易,我的目的是更新" feature
分支:
git pull --rebase
git checkout feature
git merge --no-ff master
git push origin feature
解决合并冲突后,commit
和push
之前,我意识到我忘了运行git pull --rebase
,因此,我的本地master
实际上是两次提交在远程master
后面。
我是否需要中止合并,即在运行merge
之前返回到该情境,然后执行git pull --rebase
,之后是我之前的合并尝试?或者,我可以执行某些操作以将remote master
更改包含在local master
中,因为我会在当前merge
之前删除更改。解决与缺少两个提交的合并冲突显然会与当前的解决方案不同。
希望我的问题有道理。
答案 0 :(得分:0)
如果您的本地master
只是远程master
后面的两个提交,则无需中止任何操作或重新启动,因为您只能获取并合并这两个提交。
只需解决合并冲突并将更改提交到功能分支,然后更新master,然后再次从master合并到feature
。这与先更新master的情况完全相同,但后来有人向origin/master
添加了一些新提交,即您的本地主人将再次落后于origin / master。但这不是问题,你只需更新你的主人并再次合并到功能。
或解决冲突并提交到功能分支,然后只需git fetch origin && git merge origin/master
将最新的上游更改直接应用于feature
分支。 (这意味着feature
已经提交了master
分支机构中尚未提交的内容,但这很好,下次更新时您将获得这些内容。
N.B。如果您启用rerere
,那么如果您 决定中止并重新启动合并,那么您就不需要重新解决合并冲突,因为Git会记住这些解决方案并重新使用它们