2013-06-19 64 views
1

在我們的存儲庫中,我們基於功能分支來開發功能。最近我綜合功能feature/myfeaturemasterGit:如何避免先前合併還原後合併功能分支的衝突

git merge --no-ff feature/myfeature 

此合併一些更多的發展發生了,直到事實證明,這個功能是錯誤的,並阻止整合,所以我決定來扭轉這一合併之後。繼https://stackoverflow.com/a/6217372/1237653我選用恢復合併沒有打破歷史上唯一的選擇:

git revert -m 1 commit_hash 

同時甚至更master發展已經發生以及筆者添加修正提交。現在我想再次運行以整合/合併該功能。不幸的是,現在我遇到了很多衝突,因爲第一次應用&回覆觸及與第二次嘗試相同的代碼行。

git merge --no-ff feature/myfeature 
<pointless conflicts all over> 

我怎樣才能重新申請沒有那些毫無意義的衝突,我以前恢復功能分支?

我試過-s recursive -Xrenormalize沒有運氣。 Rebase也會導致相同的衝突。

+0

作爲一種「解決方法」,我通過手工將其所有提交手動選擇到覆蓋舊分支的新分支來銷燬功能分支的歷史記錄。感覺糟糕和醜陋。 –

回答

0

而不是合併第二次你恢復的分支,你應該恢復恢復提交。我的意思是字面上看,

git revert <sha1> 

其中sha1是承諾在您前面git revert製造。

+0

謝謝!我認爲這個解決方案存在一些可用性缺陷,因爲之後我必須再次重新應用/合併功能分支以捕獲剩餘的更改。如果再次失敗,那麼所有東西都是四倍... –