首页 > 解决方案 > 希望恢复/删除远程提交以解决合并冲突

问题描述

git新手。

我不小心在一个过时的分支上工作,并将 6 个提交推送到远程开发分支。当我提交合并请求(开发>主)时,我落后了几个提交,所以我关闭了请求。

我不确定解决这个问题的最干净的方法是什么。我可以git revert将我的开发提交回来,从 master 签出一个新分支,再次进行更改,推回开发,并在没有冲突的情况下合并吗?由于还原添加了另一个提交,我不知道这是否会影响我的问题。

我不介意再次进行更改,我只是想确保我可以毫无问题地进行合并,并且在我完成后让所有内容保持最新。我已经查看了其他选项,例如git reset,但如果我错了,我宁愿不要增加问题。

下面是输出git log --graph --oneline --all

  • a9024a3(起源/发展,发展)
  • e9398de
  • af2889d
  • e8a0fea
  • 8681f8a
  • 84e80a5
  • ccf55a0
  • 81de4ff
  • c2bb35c
  • 9e4dcb2
  • 20d385d
  • a7a86b8 | * 331200a (HEAD, origin/master, origin/HEAD, master) 合并分支'development' 到'master' | |\
    |/ /
    | * 645a6f7 |/
  • f6b10dd

标签: git

解决方案


从您所写的内容来看,您似乎正在尝试避免合并冲突。如果是这种情况,我的建议是你应该学会处理它们,因为它们在使用 CVS 时很常见。做你问的正确方法是变基。revert 不会删除提交,而是创建新的“反向”提交以重置更改。有一些方法可以“删除提交”(即重置),但强烈建议不要使用这些方法,因为如果有人已经拉了它们,你可能会弄乱 repo。看

https://git-scm.com/book/en/v2/Git-Tools-Reset-Demystified

https://git-scm.com/book/en/v2/Git-Branching-Rebasing

https://git-scm.com/docs/git-revert


推荐阅读