gpt4 book ai didi

Git 如何重新设置我已经推送的(个人)分支?

转载 作者:太空狗 更新时间:2023-10-29 14:33:30 28 4
gpt4 key购买 nike

我读了git book但不知何故忘记了rule上面写着:

Do not rebase commits that you have pushed to a public repository.

If you follow that guideline, you’ll be fine. If you don’t, people will hate you, and you’ll be scorned by friends and family.

在这里,我在工作中创建了一个本地分支 feature-xyz,并将其推送到远程仓库。我将它 pull 到另一台计算机上,做了更多的工作并推送。回到工作岗位,我 pull 了 Twig 。几次提交后,我重新定位了我的分支。现在我已经完成了 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.

显然, pull 远程分支会产生各种冲突。所以我决定删除远程分支:

git push origin:feature-xyz

并重新创建它:

git push origin feature-xyz

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

最佳答案

那么不要 rebase 。 merge 。
即,不要在 anotherBranch 之上 rebase feature-branch。将 anotherBranch merge 到 feature-branch 中。

注意删除远程分支或者push --force同一个分支是一样的。
在这两种情况下,您都发布了新的 SHA1,重写了历史记录,这对于之前 pull 过 feature-branch 的其他人来说可能不方便。

关于Git 如何重新设置我已经推送的(个人)分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13047333/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com