由于产品需求的变化,我需要做一些看起来不自然的事情。长话短说我需要基于旧提交的提交,将更改提交到主分支,然后获取之前的主分支并将其放在该提交之上。由于Git和SourceTree的用户敌意,应该是一个5分钟的工作花了一个多小时,并导致了似乎是5个分支。Git,违规提交
我会试图找出我在下面试图做什么,所以它更有意义。也许最简单的底部阅读顶部:
[] <- New master which is Commit A minus an old file
[] ---\ <- Branch B is merged
[] \ [] <- Branch A is merged
[] [] [] <- Branch A is based off another, way older branch, code just cut and paste in. Branch B is the same as Commit A minus an old file
[] /--/ <- Commit A gets two branches
我几乎在这里失去了我的心,不知道该怎么寻找和不知道如何做到这一点,因为很显然,我不能只是分支的两倍并重新提交。根据SourceTree的说法,当我试图从上面的例子中将Master B合并到分支B中时,它不做任何事情,它只改变一个事物并忽略分支B中的所有其他更改(实质上使主分支与分支A相同这是我想要避免的)。然后,我尝试重新装配主人,然后,在做完这些事情之后,它将分支A从主线上抛下,这不是我想要做的。在这一点上,我有4个分支合并和/或浮动在一个主分支,射过它的一切。我不关心它看起来干净,我只需要妥善合并。
谢谢
建议:不要考虑*分支*。只考虑*提交*。你想要的提交顺序是什么?每个提交的父项应该是什么,其相应的源代码树应该是什么?把它们画出来(在白板上,纸上,不管)。只有当你把所有这些想出来的时候,你应该关注分支*名字*。这是因为这也是Git的工作原理,所以你将在这一点上做好准备,让Git实现你想要的。 (另外,我认为你已经到了这一步的一半了!) – torek
听起来像一个5分钟的工作'git rebase -i' – o11c