我正在研究代表不同功能的 2 个分支。这是我所做的步骤。
- 从 dev 创建了分支 feature_a
- 从 dev 创建了分支 feature_b
- 已完成功能_a 的工作;推送到上游并与 dev merge
- 重新调整开发人员的 feature_b 基础,以包含开发人员的所有新提交
- 对 feature_b 进行了更多提交
git push origin feature_b
throws:更新被拒绝,因为当前分支的尖端位于其远程对应分支的后面。
我不明白为什么本地 feature_b 分支会位于上游分支后面。 注意:我是唯一一个在这个分支上工作的人,也是最后一个致力于开发的人。
最佳答案
由于您将 feature_b 重新基于 dev 的最新更改,因此您有效地更改了 feature_b 的历史记录,因此现在 feature_b 和 origin/feature_b 出现了分歧。您需要git push origin feature_b --force
来获取对origin的更改。
问题是 git push
假设 origin/feature_b 可以快速转发到您的本地分支。由于您重新调整了本地分支的基础,因此无法再快进。
使用 --force
选项,您可以告诉远程分支忽略其当前状态并用本地分支覆盖它。因此 git push --force origin feature_b 只需用本地 feature_b 覆盖 origin/feature_b 即可。
请注意,--force
选项可能会导致远程存储库丢失提交,因此请谨慎使用。
关于git - 无法将本地 git 分支推送到上游,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32339513/