gpt4 book ai didi

git - rebase 后特性分支原点和本地不同步

转载 作者:太空狗 更新时间:2023-10-29 13:22:01 27 4
gpt4 key购买 nike

我正在尝试遵循此处描述的 Git 工作流程:http://nvie.com/posts/a-successful-git-branching-model/

在完成一项功能并将其 merge 到我的开发分支后,我使用 git rebase 更新了一个不同的功能分支。

这似乎工作正常,但现在我尝试将此功能分支上的新更改推送到其原始计数器部分,但出现以下错误:

! [rejected]        open-sea-dragon-feature -> open-sea-dragon-feature (non-fast-forward)
error: failed to push some refs to 'git@bitbucket.org:jeffreycwitt/lombardpress2.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

我的树看起来像这样:enter image description here

在图片中,您可以看到 open-sea-dragon 功能的两个后续提交,在 rebase 之后,被放置在我本地机器上 develop 分支的尖端之后。但这并没有发生在原始对应物上,现在它们不同步了。

我想知道如何让我的功能分支与原始功能分支同步。

最佳答案

这正是您不应重写已发布分支的历史记录的原因。您现在有两个选择:

  1. 如果您绝对确定除了您之外没有人在您的远程分支上工作(即origin/open-sea-dragon-feature),您可以强制推送你更新的分支:

    git push --force origin open-sea-dragon-feature

    在您的情况下,在此过程中您将“丢失”两次提交,但这在这里应该没问题,因为新分支中包含了它们重新定位的对应项。

    再说一遍:如果其他人可能已经 pull 了远程分支,不要这样做!当突然 pull 出重写的历史时,他们会惹上一大堆麻烦。

  2. 如果您不能强制推送更新的分支(出于上述原因),您需要硬着头皮 merge 远程分支:

    git merge origin/open-sea-dragon-feature

    之后,您将能够通过简单的快进 merge 进行推送,而使用该分支的其他协作者将能够轻松 pull 您的更改。

    这将导致一些重复的提交出现在您的历史记录中。不过,Git 应该 处理差异并能够执行干净的 merge 。如果重新定位的提交在差异方面是相同的,那么在 merge 时你不应该遇到任何冲突。

关于git - rebase 后特性分支原点和本地不同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29783285/

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