最近我发现了我的分支已经分歧的通知。就在那时我制作了一个功能分支,将它推到远程,并在几天后再次开始工作时与主人做了一次变调。
git checkout -b feature-branch
git push origin feature-branch:feature-branch
......在主人的时候...
git pull origin master
git checkout feature-branch
git rebase master
但是当我想再次推动我的分支时,它说:
On branch feature-branch
Your branch and 'origin/feature-branch' have diverged,
and have 67 and 1 different commit each, respectively.
我在" Git branch diverged after rebase":
中找到了这个答案由于你已经推动了分支,你应该已经合并了 源分支,而不是反对它。
问题
阅读this之后,我仍然不能完全理解我应该在流程中做了哪些不同的事情,以及为什么我仍然想要使用git rebase。希望有人能解释一下,谢谢!
答案 0 :(得分:17)
我们的想法是,只有在您尚未推送时才重新投放,以重播本地提交。
一旦你推动(并且正在团队中工作),你就不应该在master
之上重新绑定分支,因为它重写了它的SHA1,迫使你强制推动分支的新状态
在这里优先考虑git merge master
:您可以在本地解决冲突,然后可以提交更多内容,并定期推送。
点击“What is the difference between merging master
into branch and merging branch into master
?”