当rebase需要合并时需要采取适当的步骤

时间:2013-10-30 05:21:25

标签: git rebase

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

然后,我检查了主分支并做了git pull。然后我检查了我的新分支,并运行git rebase master。这就是它变得有点朦胧的地方,如果我不能很好地解释接下来发生的事情,我会向前表示道歉,因为我正在记忆中。

我的rebase在几个文件中有一些冲突。我被告知要解决冲突,然后拨打git rebase --continue.

我通常使用第三方工具(Araxis)进行差异和合并,但在这种情况下,git提示仍然保持原样,好像它正在等待我编辑冲突然后并获取回到它。所以,我打开了我的文本编辑器并删除了相应的'<<<<<<和'-----'在处理冲突时我们都看到了这些,并以我希望他们看的方式保存文件。

在等待提示中,我输入git rebase --continue并立即被告知先添加文件,然后调用rebase。所以我运行git add *然后git rebase --continue并完成了操作。然后我被告知我应该考虑推动,因为起源/新分支是一些落后的承诺。所以我跑了git push

然后我想我应该安全地玩它并确保一切正常,所以我打电话给git checkout master,称为git pull,然后签出新的分支并调用git pull后跟{ {1}}并且相同的文件再次发生冲突,感觉我刚刚完成了一个圆圈。

我的问题是:当rebase发生冲突时,为了让事情顺利进行,会采取哪一系列更合适的步骤,并且有人知道我采取的步骤如何导致了我的圈子(诚然,不是很以上描述?

1 个答案:

答案 0 :(得分:3)

  

并调用git pull后跟git rebase master

这是它出错的部分 您不必再次拉动远程分支,添加一个代表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