2012-06-19 78 views
1

在上面的混帳,我有2個承諾,並期待已重訂的分支合併這樣移動提交合並

7 
6_ 
    5 
    4 
3_| 
2 
1 

合併是在沒有-FF完成。

我的客戶端好好嘗試一下希望推出承諾1和2,所以我嘗試重訂它看起來像這樣

1 
2 
7 
6_ 
    5 
    4 
3_| 

這是可取的,因爲那時我可以岔開的承諾7,這是我的產品發佈。

底墊-i XXXX

展平了整個事情,有衝突數量巨大。因爲即時通訊試圖準備產品推出,我不想衝突,因爲代碼將不得不返回到測試。

當我做到這一點

底墊-i -p XXXXXX

它會將提交1和2正確,但它刪除合併和4個星期的工作與它相關聯。我在這個世界如何做到這一點?

+0

是'1'回購的初始提交? – CharlesB

+0

不,它關於承諾1400.我只是在這裏用1作插圖。 – scphantm

+0

這並沒有讓你接近一個好的解決方案,但是這個討論涉及到爲什麼使用'-i'和'-p'標誌產生違反直覺的結果:http://thread.gmane.org/gmane.comp。 version-control.git/148059/focus = 148092 – Christopher

回答

3

從兩個提交中創建一個補丁並將其應用於反向模式。

臨:

  1. 簡單的解決方案
  2. 非常安全取決於變更的大小

缺點:

  1. 葉在提交歷史上提交
  2. 取決於對代碼th的更改量at在兩次提交中(即,修改了在rev中發生的代碼。 3-7),反向應用將不起作用

另一個黑客應該是沒有最後7個修訂版簽出。然後爲修訂3-7創建補丁並應用這些補丁。應該給你相同的結果和乾淨的提交歷史記錄。

但是在這兩種情況下,我都很警惕,因爲在重新貸款期間你有很多衝突。

+0

不是很優雅,但很有效。我希望能夠避免這一點,但經過2個半小時的磨合之後,我陷入困境。 – scphantm

+0

DVCS解決了所有簡單的問題,根據定義,這意味着只剩下困難的問題;-) –