我很難找到適合我的問題的解決方案:我正在爲項目編寫一些代碼。每個星期我都會得到一些我必須實現的新功能,事實證明,我已經在一個月前添加的某個功能可以從代碼基礎中刪除和刪除。我確切知道哪個提交負責。在git中是否有一個命令放棄該特定的提交,但將調整後的代碼保留在提交後的代碼中?刪除git commit
一切順利, 大衛
我很難找到適合我的問題的解決方案:我正在爲項目編寫一些代碼。每個星期我都會得到一些我必須實現的新功能,事實證明,我已經在一個月前添加的某個功能可以從代碼基礎中刪除和刪除。我確切知道哪個提交負責。在git中是否有一個命令放棄該特定的提交,但將調整後的代碼保留在提交後的代碼中?刪除git commit
一切順利, 大衛
兩種方式。
git rebase -i 'commit to be dropped'
需要git push -f
如果確認已經在服務器上。
這將完全從歷史記錄中刪除提交,如果您的存儲庫是共享的,甚至是服務器禁止的,則可能是危險的。如果提交已被推送,我建議您不要執行此操作。
或者你可以使用
git revert 'commit to be reverted'
這將創建一個新的提交是撤消您的修改。
是的,git revert是我正在尋找的命令!謝謝您的幫助 :) – 2014-10-17 16:42:52
它被稱爲rebase。在問這個問題之前,請先做一些研究。 – simonzack 2014-10-17 16:30:53
這可能是最好的刪除代碼並添加一個新的提交。這保留了您可以輕鬆追蹤的事件的半線性歷史記錄,並且還允許您在必要時返回代碼。 – 2014-10-17 16:32:57
嗨@DaveZych,有沒有一種自動的方法,只刪除由我當前頭部的特定提交所做的更改,以便我可以立即做出這樣的新提交,或者必須使用git-diff查找代碼並刪除它然後手動之前,我可以提交? – 2014-10-17 16:41:44