在合并之前忘了拉变化

时间:2015-07-13 12:00:01

标签: git merge

我有一个本地分支feature,为了使将来合并到master更容易,我的目的是更新" feature分支:

git pull --rebase
git checkout feature
git merge --no-ff master
git push origin feature

解决合并冲突后,commitpush之前,我意识到我忘了运行git pull --rebase,因此,我的本地master实际上是两次提交在远程master后面。

我是否需要中止合并,即在运行merge之前返回到该情境,然后执行git pull --rebase,之后是我之前的合并尝试?或者,我可以执行某些操作以将remote master更改包含在local master中,因为我会在当前merge之前删除更改。解决与缺少两个提交的合并冲突显然会与当前的解决方案不同。

希望我的问题有道理。

1 个答案:

答案 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会记住这些解决方案并重新使用它们