2012-06-01 195 views
1

一點背景:代碼庫Dev分支的代碼庫Git的合併合併後,並恢復

主分支

兩個正在上(我知道的工作,但我剛開始對這個項目,所以我不怪)

在一個點上,開發被誤合併回主人,然後幾個提交後所有這些變化恢復(手動,它看起來像)

現在,我需要將開發人員合併爲真實的主人,但所有意外合併然後還原的更改當然都會丟失。

我不太知道該怎麼辦這裏除了手工製作合併後的變化。

有什麼想法?

回答

1

我會建議一個interactive rebase。刪除恢復更改的提交併修復任何合併衝突。

+0

我試圖避免重訂,但它是很有道理的。這個問題實際上是首先導致這種情況的工作流程的缺乏,所以這是最好的解決方案。 – Jakanapes

1

大約GIT中的美妙的事情是它的靈活性,以及​​如何努力是實際刪除的東西。

這裏是接近的一種方式:

git checkout master 
git log (make note of all commits on master that you want which were done after the incorrect merge) 
git reset --hard <commit before dev was merged in in error> 
git cherry-pick <id's of commits previously identified> 
git merge develop (to do the desired merge) 

正如在其他答覆中提到,互動,變基是一種選擇了。您可以使用它來刪除引入錯誤合併的提交以及恢復它的提交。

請注意,您可以改寫歷史,所以你將不得不推到與--force共享存儲庫,讓其他開發人員知道這樣他們就可以重新克隆或拉變化到一個新的分支等。確保在進行這些更改之前與團隊進行協調非常重要。

+0

好主意,我喜歡挑選櫻桃,但經過討論後,團隊正在進行rebase。不過,我一定會爲未來保留這種方法 – Jakanapes