我 pull 了远程仓库的 master 分支并创建了一个新分支。我修改了一些文件,提交它们,然后推送到远程服务器上的新分支。第二天我做了几次。
然后,我检查了 master 分支并执行了 git pull
。然后我检查了我的新分支,并运行了 git rebase master
。这是它变得有点模糊的地方,如果我没有很好地解释接下来发生的事情,我先道歉,因为我正在记忆。
我的 rebase 在几个文件中有一些冲突。我被告知要修复冲突,然后调用 git rebase --continue。
我通常使用第 3 方工具 (Araxis) 进行比较和 merge ,但在这种情况下,git 提示保持在原处,就好像它在等我马上编辑冲突并得到回到它。因此,我打开了我的文本编辑器并删除了我们在处理冲突时都看到的适当的“<<<<”和“-----”位,并按照我希望的方式保存文件。
然后在等待提示符下输入 git rebase --continue
并立即被告知先添加文件,然后调用 rebase。所以我运行 git add *
然后运行 git rebase --continue
并完成操作。然后我被告知我应该考虑推送,因为 origin/new 分支落后了一些提交。所以我运行了 git push
。
然后我想我应该谨慎行事并确保一切正常,所以我调用了 git checkout master
,调用了 git pull
,然后检查了新分支并调用了 git pull
之后调用了 git rebase master
相同的文件又发生了冲突,感觉就像我刚刚完成了一个圆圈。
我的问题是:当 rebase 发生冲突时,采取哪些更合适的步骤来保持事情的顺利进行,有谁知道我采取的步骤是如何导致我的圈子的(诚然,不是很嗯)如上所述?
最佳答案
and called
git pull
followed bygit rebase master
这就是它出错的地方。
您不必再次 pull 您的远程分支,添加一个代表然后从 origin
更改的提交,一旦重新基于(再次)在 master
上,将产生相同的冲突.
我通常做一个(因为我不在 master
上工作,但只在 mybranch
上工作):
git checkout mybranch
# Let's not modify any local file
git fetch
# reset my local master branch to the one I just fetched
git branch -f master origin/master
git rebase master
# resolve conflicts
# git add, git rebase --continue
git push
关于git - 当 rebase 需要 merge 时应采取的正确步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19674411/