无法向上游推送本地git分支

时间:2015-09-01 19:31:08

标签: git

我正在研究代表不同功能的2个分支。以下是我所做的步骤。

  1. 从dev
  2. 创建分支feature_a
  3. 从dev
  4. 创建分支feature_b
  5. 完成feature_a的工作;推到上游并与dev合并
  6. 从dev重新引用feature_b以包含dev
  7. 中的所有新提交
  8. 还有更多提交给feature_b
  9. git push origin feature_b抛出:更新被拒绝,因为您当前分支的提示落后于其远程对手。
  10. 我不明白为什么本地feature_b分支会在上游分支后面。 注意:我是唯一一个在这个分支上工作的人,也是最后一个致力于开发的人。

1 个答案:

答案 0 :(得分:4)

由于您将feature_b重新设置为dev的最新更改,因此您实际上更改了feature_b的历史记录,因此现在feature_b和origin / feature_b已经分歧。您需要git push origin feature_b --force才能更改原点。

问题是git push假设origin / feature_b可以快速转发到您的本地分支。由于您重新定位了本地分支,因此无法再进行快进。

使用--force选项,您告诉远程分支忽略它的当前状态并用您的本地分支覆盖它。所以git push --force origin feature_b只是用本地feature_b覆盖origin / feature_b。

请注意,--force选项可能导致远程存储库丢失提交,因此请谨慎使用。