2014-10-17 116 views
-2

我很難找到適合我的問題的解決方案:我正在爲項目編寫一些代碼。每個星期我都會得到一些我必須實現的新功能,事實證明,我已經在一個月前添加的某個功能可以從代碼基礎中刪除和刪除。我確切知道哪個提交負責。在git中是否有一個命令放棄該特定的提交,但將調整後的代碼保留在提交後的代碼中?刪除git commit

一切順利, 大衛

+0

它被稱爲rebase。在問這個問題之前,請先做一些研究。 – simonzack 2014-10-17 16:30:53

+0

這可能是最好的刪除代碼並添加一個新的提交。這保留了您可以輕鬆追蹤的事件的半線性歷史記錄,並且還允許您在必要時返回代碼。 – 2014-10-17 16:32:57

+0

嗨@DaveZych,有沒有一種自動的方法,只刪除由我當前頭部的特定提交所做的更改,以便我可以立即做出這樣的新提交,或者必須使用git-diff查找代碼並刪除它然後手動之前,我可以提交? – 2014-10-17 16:41:44

回答

3

兩種方式。

git rebase -i 'commit to be dropped'

需要git push -f如果確認已經在服務器上。

這將完全從歷史記錄中刪除提交,如果您的存儲庫是共享的,甚至是服務器禁止的,則可能是危險的。如果提交已被推送,我建議您不要執行此操作。

或者你可以使用

git revert 'commit to be reverted'

這將創建一個新的提交是撤消您的修改。

+0

是的,git revert是我正在尋找的命令!謝謝您的幫助 :) – 2014-10-17 16:42:52