2012-07-25 74 views
1

在我們的Git倉庫中,我們有幾個分支合併,應該合併爲--no-ff但不合並。這些合併是很久以前做出的。很久以前合併的No-FF

有什麼辦法強制/插入一個提交,就好像我們正在運行那些舊的合併與--no-ff參數?

項目中的一個超級用戶喜歡GitHub的網絡視圖,並希望能夠看到各個分支,這些分支在發生快進時都合併爲一行。

回答

2

如果你不介意有一個新的主/主分支(或覆蓋舊的 - 但是記住,重寫發表歷史BAD),你可以簡單地重新創建的合併,如果你還記得,當他們/應該已經作出:

  1. 結帳忘記第一/不存在/未接合併:

    git checkout -b new_master $commit_before_merge 
    
  2. 合併舊的提交。如果您想要正確的合併消息(包括原始分支名稱),則可能需要暫時重新創建舊分支,或手動編輯消息。

    git merge $head_commit_of_old_branch 
    
  3. 你將不得不使用cherry-pickrebase從原來的主分支副本提交到新的「mergy」分支。 (摘櫻桃與承諾的範圍,需要一個最近的Git版本)

    git cherry-pick $commit_before_merge..$commit_before_next_merge 
    
  4. 回到步驟2和重複,直到你滿意的歷史。

NB。首先備份和測試本地克隆。

+0

這將是一個漫長的夜晚。謝謝! – Qix 2012-07-25 10:07:01

+1

@ Di-0xide:我不知道是否有更高效的版本,但我不知道更好的方法 – knittl 2012-07-25 11:00:01