2016-06-29 26 views
0

我正在同時工作的功能分支和主分機分支。GIT - 撤消具體的過去合併,但需要合併後提交的提交完好

前幾天我合併我的功能。一些提交也已經完成。

但後來我意識到這個功能是不需要的。所以我需要刪除由於功能分支而被合併的提交。

經覈查,我意識到,我有3個選擇再次基於還原摘櫻桃

我將來可能需要提交功能分支。因此,如果我將來需要提交,那麼它的提交需要在提交歷史記錄/ git log中顯示。因此,我很困惑上述三種選擇中的哪一種。

注意:所有提交都會推送給主設備。那麼這對我選擇的選項有什麼影響?

+0

你想保留功能分支上的提交,並刪除主分支上的合併提交? – ThiepLV

+1

恢復。如果您再次需要更改,請重新恢復回覆。 – 1615903

+0

@ThiepLV我想保留特徵分支的提交。以防萬一我需要他們。 – 7vikram7

回答

2

因爲您的分支已經發布,您可能希望避免使用交互式底座作爲解決方案。交互式底圖可以讓你從Master字面上刪除Feature提交的內容,這是你不需要的。但是,這會以重寫Master的歷史記錄爲代價,這可能會產生負面影響。

我認爲你最好的選擇是git revertFeature你不想要的提交。

用途:

git revert <SHA-1> 

其中<SHA-1>是提交要恢復。如果您有一系列提交,那麼您可以使用:

git revert --no-edit <SHA-1>..<SHA-1> 

使用兩個提交的範圍。

無法在您的歷史記錄中提交供以後使用的提交。要麼是提交,要麼不是。

如果您想稍後恢復提交,您可以合併或選擇它們,也可以恢復提交提交(@ 1615903)。

+1

謝謝。工作得很好。雖然我不得不解決一個衝突,但是當我過去常常將'Master'分支合併到'Feature'分支時,我最初得到了衝突。 – 7vikram7