如果我忘记推送提交并从本地开发分支创建功能分支,如何解决 GIT 冲突?

How to resolve GIT conflict if I forgot to push the commits and created a feature branch from my local develop branch?

我正在寻找一种简单的方法来解决我当前的 git 冲突。

这是怎么回事:

  1. 在我的开发分支上创建的本地提交 (5)(没有推送它们)
  2. 从我的本地开发分支创建的功能分支
  3. 功能分支开发完成,已推送提交
  4. 来自功能分支的 PULL 请求合并开发
  5. 现在我检查了我的本地开发分支,当我尝试同步时,我看到已经有传入和传出的提交,现在我意识到我忘了早点推送它们,我猜我遇到了麻烦。 ..
  6. (尝试同步,但毫不奇怪它有很多冲突)

我希望它是可以理解的,并且有人可以帮助我。谢谢!

如果您在创建 feature 分支后没有在本地 develop 分支上进行任何新提交(feature 分支被推送,然后合并到远程origin/develop 分支),你可以简单地:

  • origin
  • 中获取
  • 将您当前的 develop 分支重置为 origin/develop

(对于上述情况或以下情况,我会将您的本地存储库保存在一个重复的文件夹中,以防出现问题)


那会起作用,因为 origin/develop 确实包括您本地的 develop+feature 工作,通过拉取请求合并到 origin/develop

如果您在创建功能后在开发上完成了提交,则可以在 origin/develop

之上对这些新提交进行变基
git fetch origin
git branch tmp origin/develop
git rebase --onto tmp $(git merge-base feature develop) develop
git branch -f develop tmp
git switch develop