2013-02-08 32 views
9

git櫻桃採摘有效嗎?例如,前一段時間,由於業務流程尚未準備就緒,我不得不做出一些臨時更改以禁用一組功能。現在,業務流程已經準備就緒,我想簡單地刪除提交及其影響。雖然我當然可以看看這些提交的差異並找出需要完成的工作,但知道如果這些提交回來的歷史可能沒有完成而沒有重置並丟失所有後來發生的事情他們。git cherry-pick對面?

+1

你可能是指'git revert'? – 2013-02-08 19:09:53

回答

12

撤消另一個提交所做更改的自動方法是git revert

+0

這個,我應該看過。 – andyortlieb 2013-02-08 20:49:25

+1

這不是相反的使用'git rebase -i'而不是@Kyralessa答案解釋 – Leo 2016-01-28 07:39:34

15

git revert不是git cherry-pick的反義詞。 git rebase -i是。

git revert添加了一個新的提交,用於刪除一個或多箇舊提交所做的更改。它不會刪除原始提交。

git rebase -i會向您顯示您當前提交的提交列表,回到上一次提交而不是您的上游分支。然後,您可以編輯,重新排列,更改提交消息,甚至從此列表中刪除提交。

請記住,如果您已經推動了您想要移除的提交,那麼您需要確定將它們與您的隊友一起移除,因爲一旦您使用移除的方法推送新的歷史記錄時,他們必須進行調整提交。

+1

這非常棒!雖然rebase -i在技術上回答了這個問題,並且從長遠來看可能更清潔,但git revert滿足了我表達的問題。 – andyortlieb 2013-02-12 15:11:26

+1

「git revert」添加了一個新的提交,用於刪除一個或多箇舊提交所做的更改。「這聽起來*完全像'git cherry-pick'的反面。也許「反」比「反面」更好。 – 2016-02-12 17:27:33

+1

如果'git cherry-pick'添加了一個提交,那麼相反就是刪除該提交。不要添加_another_ commit。 – 2016-02-12 17:39:40