3

我拉了一个远程存储库的主分支并创建了一个新分支。我修改了一些文件,提交它们,然后推送到远程服务器上的新分支。第二天我做了几次。

然后,我检查了 master 分支并做了一个git pull. 然后我检查了我的新分支,然后运行git rebase master​​. 这是它变得有点模糊的地方,如果我不能很好地解释接下来发生的事情,我先道歉,因为我正在记忆中。

我的 rebase 在几个文件中有一些冲突。有人告诉我解决冲突,然后打电话git rebase --continue.

我通常使用 3rd 方工具 (Araxis) 进行差异和合并,但在这种情况下,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 发生冲突时,采取哪些更合适的步骤来保持事情顺利,有谁知道我采取的步骤是如何导致我(诚然,不是很好)描述的圈子以上?

4

1 回答 1

4

git pull然后调用git rebase master

那是它出错的部分。
您不必再次拉取远程分支,添加一个提交表示然后更改 from 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
于 2013-10-30T08:26:54.327 回答