問題

我想知道如何刪除提交.

透過delete,我的意思是它似乎沒有提交,當我在未來進行推送時,我的更改將不會推送到遠端分支.

我讀了git help,我認為我應該使用的命令是git reset --hard HEAD.這是正確的嗎?

  最佳答案

小心:git reset --hard WILL DELETE YOUR Writure Directories Chagiones.一定要在執行此命令之前保留任何本地更改.

假設你坐在那個提交上,那麼這個命令就會打破它...

 git reset --hard HEAD~1
 

HEAD~1是指頭部之前的提交.

或者,您可以檢視git log的輸出,找到您想要備份的提交的提交ID,然後執行此操作:

 git reset --hard <sha1-commit-id>
 

如果你已經推了它,你將需要做一個力推來擺脫它...

 git push origin HEAD --force
 

然而,如果其他人可能已經把它拉下來了,那麼最好是開始一個新的分支。

如果您已經推動,最好使用 git revert 建立一個“映象影象”提交來消除更改。但是,兩個提交都將在日誌中。


如果你想擺脫PROGRESS的工作,git reset --hard HEAD很棒.它將重置回最新的提交,並刪除工作樹和索引中的所有更改.


最後,如果您需要找到一個“刪除”的提交,除非您有收集儲存庫的垃圾,否則它通常存在於 git reflog 中。

  相同標籤的其他問題

gitgit-rebasegit-reset