有時候,進(jìn)行了錯誤的提交,但是還沒有push到遠(yuǎn)程分支,想要撤銷本次提交,可以使用git reset –-soft/hard命令。
1、二者區(qū)別:
git reset –-soft:回退到某個版本,只回退了commit的信息,不會恢復(fù)到index file一級。如果還要提交,直接commit即可;
git reset -–hard:徹底回退到某個版本,本地的源碼也會變?yōu)樯弦粋€版本的內(nèi)容,撤銷的commit中所包含的更改被沖掉;
2、具體用法如下:
使用git log命令查看本地的所有提交
現(xiàn)在想要撤銷最后一次提交,即上圖中“OTMS-25838: rollback the modification in OrderDto”這個commit;
(1)git reset --hard使用示例:
使用命令git reset --hard 1c38838ad39b396e271cb10e2146a1d673b4a2b9撤回制定版本號(不包括該提交)之前的所有提交。
注意:上述命令執(zhí)行成功之后,會徹底返回到回退前的版本狀態(tài),新發(fā)生的變更將會丟失。對于部分發(fā)生了變更,但是變更部分的文件夾存在未提交的文件可能導(dǎo)致目錄非空而刪除失敗,此時需要自行處置。
(2)git reset –-soft使用示例:
初始狀態(tài),可見當(dāng)前分支最后一個提交是debug the initialization page
現(xiàn)在要撤銷該commit,但是又不能撤銷該提交包含的更改,使用git reset --soft,執(zhí)行結(jié)果為
可見commit取消了,代碼更改并沒有取消。
到此這篇關(guān)于詳解git reset --hard 和 git reset --soft區(qū)別的文章就介紹到這了,更多相關(guān)git reset --hard和git reset --soft內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 詳解git reset 加不加 --hard的區(qū)別