不要对已推送到公共存储库的提交进行变基。
如果您遵循该准则,您会没事的。如果你不这样做,人们会恨你,你会被朋友和家人鄙视。
在这里,我在工作中创建了一个本地分支 feature-xyz,我将其推送到远程仓库。我把它拉到另一台电脑上,做了更多的工作,然后推了。回到工作岗位,我拉了树枝。几次提交后,我重新调整了我的分支。现在我完成了 feature-xyz 并希望将其推送到远程存储库,但这显然失败并显示以下消息:
$ git push origin feature-xyz
To git@<url>:<repo>.git
! [rejected] feature-xyz -> feature-xyz (non-fast-forward)
error: failed to push some refs to 'git@<url>:<repo>.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
显然,拉远程分支会产生各种冲突。所以我决定删除远程分支:
git push origin :feature-xyz
并重新创建它:
git push origin feature-xyz
但是我想知道是否有更好的工作流程不涉及删除远程分支?