由於產品需求的變化,我需要做一些看起來不自然的事情。長話短說我需要基於舊提交的提交,將更改提交到主分支,然後獲取之前的主分支並將其放在該提交之上。由於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