2

我读了git book但不知何故忘记了上面写着的规则

不要对已推送到公共存储库的提交进行变基。

如果您遵循该准则,您会没事的。如果你不这样做,人们会恨你,你会被朋友和家人鄙视。

在这里,我在工作中创建了一个本地分支 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

但是我想知道是否有更好的工作流程不涉及删除远程分支?

4

1 回答 1

5

那就不要变基了。合并。
即,不要feature-branchanotherBranch. 合并anotherBranchfeature-branch.

注意删除远程分支或者push --force同一个分支是一样的。
在这两种情况下,您都发布了新的 SHA1,重写了历史,这对于以前拉过feature-branch.

于 2012-10-24T10:35:01.040 回答