再一次:快

所以我重新挑选了一个反对主人的分支。 然而,

git push --set-upstream origin MyBranch

我明白了

 ! [rejected]        MyBranch -> MyBranch (non-fast-forward)
 error: failed to push some refs to 'https://mygit@bitbucket.org/mygit/myproject.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.

那么好吧。 再次基础。 完成没有问题。 然后

 git pull

 * branch            HEAD       -> FETCH_HEAD

好的,已经是最新的了

git push --set-upstream origin MyBranch

再次,错误。 我可以推动,但我不喜欢丢失东西的风险,说实话,即使我按照规则手册玩,似乎也会发生这个恼人的问题,我真的想知道一个合适的解决方案。


从你的描述中,我将尝试对可能发生的事情进行有根据的猜测。

Git拒绝将你的rebased commit提交到上游分支( origin/MyBranch ),因为它们与已经存在的分支不同。 它们是不同的,因为你在不同于上游分支提交的提交之上重新定义了本地提交。

问题

以下是我认为您的情况可能如下所示的示例:

      Local                                Origin
A---B---C---F (master)                A---B---C---F (master)
                                             
             D'---E' (MyBranch)                D---E (MyBranch)
  • origin/MyBranch中的提交DE最初基于master C顶层。 然后F成为新HEADmaster
  • 当你在master完成git pull ,你在本地回购中获得了新的提交F
  • 你衍合MyBranch之上master ,也就是现在的F ,而且改变了哈希提交DED'E'
  • 发布git push origin MyBranch拒绝覆盖提交,因为Git将它们视为不同于origin提交的提交,它们仍然基于C顶部。
  • (可能的)解决方案

    如果你是唯一一个在MyBranch工作的人,或者你可以轻松地与任何可能有兴趣在该分支机构工作的人沟通,我会说只是推动你重新提交的提交。 同样,假设没有其他人同时将提交提交到origin/MyBranch ,则不会丢失任何内容。

    如果这完全不能反映您的情况,请随时忽略此建议,并在可能的情况下添加有关此问题的更多详细信息。

    链接地址: http://www.djcxy.com/p/49249.html

    上一篇: Once again: fast

    下一篇: After rebase and force push, I have a detached/dangling commit/tag