有時候,進行了錯誤的提交,但是還沒有push到遠程分支,想要撤銷本次提交,可以使用git reset –-soft/hard命令。
1、二者區別:
git reset –-soft:回退到某個版本,只回退了commit的信息,不會恢復到index file一級。如果還要提交,直接commit即可;
git reset -–hard:徹底回退到某個版本,本地的源碼也會變為上一個版本的內容,撤銷的commit中所包含的更改被沖掉;
2、具體用法如下:
使用git log命令查看本地的所有提交

現在想要撤銷最后一次提交,即上圖中“OTMS-25838: rollback the modification in OrderDto”這個commit;
(1)git reset --hard使用示例:

使用命令git reset --hard 1c38838ad39b396e271cb10e2146a1d673b4a2b9撤回制定版本號(不包括該提交)之前的所有提交。
注意:上述命令執行成功之后,會徹底返回到回退前的版本狀態,新發生的變更將會丟失。對于部分發生了變更,但是變更部分的文件夾存在未提交的文件可能導致目錄非空而刪除失敗,此時需要自行處置。
(2)git reset –-soft使用示例:
初始狀態,可見當前分支最后一個提交是debug the initialization page

現在要撤銷該commit,但是又不能撤銷該提交包含的更改,使用git reset --soft,執行結果為


可見commit取消了,代碼更改并沒有取消。
到此這篇關于詳解git reset --hard 和 git reset --soft區別的文章就介紹到這了,更多相關git reset --hard和git reset --soft內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 詳解git reset 加不加 --hard的區別