Git中的坏合并冲突解决方案。重试错误提交,保持更改?

时间:2012-05-24 13:36:50

标签: git merge git-extensions merge-conflict-resolution

我正在与另一位开发人员合作开展一个小项目,我们遇到了一些情况。我们都熟悉SVN,但Git对我们两个人来说都是新手。

我们正在我们的存储库中的一个分支上工作,每个分支都在我们项目的不同方面。

他发生了什么事情,然后我犯了一些东西,发生了冲突(在设计师档案中,因为它试图将我们的两个新文件放在同一个“点”),而且当我解决它们时,我一定错过了但是现在它没有用。我设法以某种方式使文件进入工作状态,并继续我的快乐方式,添加更多不受冲突解决方案影响的事情。

所以它看起来像。

A(好) - > B(差) - > C(试图修复) - > D(恢复错误提交) - > A - > E(完全新文件) - > F(完全新文件) - > G(其他开发人员首先提交大问题,引入更多问题和冲突。)

我基本上想要做的是回到A.并合并我的B,E和F提交,此时另一个开发者可以提交G.此时我不知道B之间发生了什么和E,所以我宁愿放弃它,因为只是我试图解决问题。但是,当我回到A时,我没有被提示我在最初提交B时遇到的相同冲突。

请上帝帮助我。

1 个答案:

答案 0 :(得分:4)

尝试使用SHA参考检查你的A提交,使用git中的cherry-pick命令从A创建一个新分支,并选择B,E和F。

git checkout -f A23FDE (A)
git checkout -b new-branch-name
git cherry-pick F45HJ2 (B)
git cherry-pick E49FG2 (E)
git cherry-pick K83D87 (F)