不要将已推送到公共存储库的提交重新绑定。
如果您遵循该指南,您会没事的。如果你不这样做,人们 会恨你,你会被朋友和家人嘲笑。
在这里,我在工作中创建了一个本地分支功能-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
但是我想知道是否有更好的工作流程而不涉及删除远程分支?
答案 0 :(得分:5)
然后不要改变。合并。
即,不要在feature-branch
之上重新anotherBranch
。将anotherBranch
合并到feature-branch
。
请注意,删除远程分支或push --force
相同的分支是相同的
在这两种情况下,您都发布了新的SHA1,重写了历史记录,这对于之前已经提取过feature-branch
的其他人来说可能不方便。