我拉了一个远程存储库的主分支并创建了一个新的分支。我修改了一些文件,提交了它们,然后推送到远程服务器上的新分支。我在第二天做了好几次。
然后,我检查了主分支并做了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发生冲突时,为了让事情顺利进行,会采取哪一系列更合适的步骤,并且有人知道我采取的步骤如何导致了我的圈子(诚然,不是很以上描述?
答案 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