Git,承诺不自然的提交

时间:2017-08-31 18:34:21

标签: git atlassian-sourcetree

由于产品需求的变化,我需要做一些看起来不自然的事情。简而言之,我需要基于旧提交提交,将更改提交到主分支,然后获取以前的主分支并将其置于该提交之上。由于Git和SourceTree的用户敌意,本应该花费5分钟的工作花了一个多小时,结果看起来是5个分支。

我会尝试绘制出我在下面尝试做的事情,这样更有意义。可能最容易从头到尾阅读:

[]              <- 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

我在这里几乎失去了理智,不知道该搜索什么,也不确定如何做到这一点,因为显然,我不能只分支两次并重新提交。当我尝试从上面的例子中合并主服务器中的分支B时,要么根本不执行任何操作,要么根据SourceTree,只更改一件事并忽略分支B中的所有其他更改(基本上使master与分支A相同)这是我想要避免的)。我尝试重新定位主人,然而,在做完并承诺后,它将分支A从主线上扔掉,这不是我想做的事情。在这一点上,我有4个分支合并和/或漂浮在太空中,主分支射击过去。我不关心它看起来干净,我只需要正确合并。

谢谢

1 个答案:

答案 0 :(得分:0)

我确信这不是正确的做事方式,但是-torek让我走上正轨;想想承诺不分支。所以,我只是将所有文件剪切并粘贴到两个不同的提交中。现在一切都井井有条,除了树枝无处可去,但无论如何,它们都会腐烂。

感谢。