我在一个文件中更改了4行,并且需要将这些更改应用于先前的提交。这应该是非常容易的。
Git报告了所有内容A-OK,检查提交历史记录显示git实际上创建了一个3路合并并且复制了所有提交,所以现在我有2组提交。
抓我的头我再次重新定位并且git因合并冲突而停止,我修复了合并冲突,现在我仍然有重复的提交,但是3路合并幸运地消失了。
所以我再次重新定位,将副本移到彼此之上并压缩它们,但结束了合并冲突。我修复了合并,现在我再次进行了3向合并 - 回到原点。
我再次经历了上面的所有步骤以重复提交但没有3路合并,这次只是在rebase上将重复提交移到彼此之上而不是压缩它们,我会将它们压在第2回合。然而真正奇怪的是它消除了包含4行更改的整个提交,我知道我小心不要从git rebase todo文件中删除该行。
所以,因为4行更改现在神秘地消失了,但幸运的是其他一切看起来很好我决定重新设置并编辑提交并重新输入这4行更改 - 出于纯粹的挫折我忘记添加2行改变所以只添加了2个更改,但是让事情变得更加令人沮丧它再次进行了血腥的3路合并,然后再次重复所有提交。
现在看来我已经在rebase地狱中对一个文件进行了非常简单的更改,添加了2行,2个忘了添加,我们又回到了3向合并这是一场噩梦。
此外,如果它有助于任何可视化的ASCII提交树
* 2c935a7 (HEAD -> feature/event-system) Integrated Event System and Fine Tuned Files
* c579fde Finished Event System
| * ec6656e (origin/feature/event-system) Integrated Event System and Fine Tuned Files
| * ee51864 Finished Event System
|/
* 6fcbe87 (origin/develop, develop) Initial Assets and Files Commit
* f5015f8 Initial Libraries Commit
* 77f162a (origin/master, master) Initial Commit
修改
为了回答你的一些问题,下面是对所有事情进行更全面的细分
答案 0 :(得分:0)
事实证明,从一开始就没有3路合并,我所做的一切都是错误的。
git log
在视觉上向我指出了远古的历史与我的历史混合在一起,当我把它混在一起看起来像我的历史真的搞砸了,让我害怕推动。
但是随着信念的飞跃和推动,无论如何更新了远程端,git log
现在显示了同样的事情,没有历史分歧。我将来会注意到任何可能感到困惑的人,如果它在任何地方写过,都会让我花费很多时间来解决问题。