2012-12-19 136 views
0

我編寫了一個時間受限的功能,該功能已合併到主設備併發送到生產環境。現在時間到了,我想從代碼庫中刪除包含該功能的提交。Git rebase - 刪除已推送到遠程存儲庫的一些提交

通常我會做一個git rebase -i並刪除提交。

但是,這些提交已經被推送到遠程存儲庫,所以當我在本地重新綁定並嘗試推送分支時,我收到了關於我的分支尖端如何落後並且可以被快速轉發的投訴。

有沒有辦法從rebase生成一個「新提交」,以撤消我不想要的提交?我並不在意有一個「乾淨」的提交歷史記錄,任何退出這些提交的方式都會很棒。

回答

1

您必須git push --force您的分支到任何遠程,因爲默認情況下,push拒絕重寫歷史記錄。

0

如果你只是想擺脫功能(但不是功能的歷史),它都包含在一些特定的提交(不影響其他功能),那麼git revert可能是你的答案。

這並不總是一個很好用的選項(例如提交可能包含其他功能,您不想刪除),或者您可能有一些令人信服的理由希望刪除任何功能跟蹤,但它是一個方便的指令要注意。

相關問題