我正在与另一位开发人员合作开展一个小项目,我们遇到了一些情况。我们都熟悉SVN,但Git对我们两个人来说都是新手。
我们正在我们的存储库中的一个分支上工作,每个分支都在我们项目的不同方面。
他发生了什么事情,然后我犯了一些东西,发生了冲突(在设计师档案中,因为它试图将我们的两个新文件放在同一个“点”),而且当我解决它们时,我一定错过了但是现在它没有用。我设法以某种方式使文件进入工作状态,并继续我的快乐方式,添加更多不受冲突解决方案影响的事情。
所以它看起来像。
A(好) - > B(差) - > C(试图修复) - > D(恢复错误提交) - > A - > E(完全新文件) - > F(完全新文件) - > G(其他开发人员首先提交大问题,引入更多问题和冲突。)
我基本上想要做的是回到A.并合并我的B,E和F提交,此时另一个开发者可以提交G.此时我不知道B之间发生了什么和E,所以我宁愿放弃它,因为只是我试图解决问题。但是,当我回到A时,我没有被提示我在最初提交B时遇到的相同冲突。
请上帝帮助我。
答案 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)