Git 分支在 rebase 后出现分歧,为什么要 rebase?

Git branch has diverged after rebase, so why rebase?

最近我收到通知说我的分支发生了分歧。那是我创建了一个功能分支,将其推送到远程,并在几天后再次开始工作时与 master 进行了 rebase。

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”中找到了这个答案:

Since you'd already pushed the branch, you should have merged in the source branch, rather than rebasing against it.

问题

阅读 this 之后,我仍然不完全理解我应该在我的流程中做哪些不同的事情,以及为什么我仍然想使用 git 变基。希望有人能解释一下,谢谢!

我们的想法是,只有在您还没有推送时才进行变基,以重播您的 local 提交。

一旦你推送(并且在团队中工作),你不应该在 master 之上重新设置分支,因为它重写了它的 SHA1,迫使你强制推送新的状态分支机构。

在这里将 git merge master 创建到您的分支中更可取:您在本地解决冲突,然后您可以进行更多提交,并定期推送。

在“What is the difference between merging master into branch and merging branch into master?

查看更多内容