Git命令_git reset和撤銷commit、暫存區或工作區的修改


git reset:

hard模式:

reset --hard 會在重置 HEADbranch的同時,重置stage區和工作目錄里的內容。當你在 reset 后面加了 --hard 參數時,你的stage區和工作目錄里的內容會被完全重置為和HEAD的新位置相同的內容。換句話說,就是你的沒有commit的修改會被全部擦掉。

如果輸入 git reset --hard HEAD^,這時候不僅stage區和工作目錄的內容被擦掉了,而且HEAD和當前branch分支會切換到上一條commit中。

 

soft模式:

reset --soft 會在重置 HEADbranch 時,保留工作目錄和暫存區中的內容,並把重置 HEAD 所帶來的新的差異放進暫存區。這種模式下會保存工作區的內容;

hard和soft區別在於,hard會清空工作目錄和暫存區,soft會保留工作目錄;

 

mixed模式:

默認情況下的模式,reset不加參數,就是mixed模式;

保留工作區目錄,清空暫存區。把工作區修改,暫存區的內容以及reset導致的新文件差異都放進工作目錄中。簡而言之,把所有差異都混合放在工作目錄中。

 

 

所以如果想把暫存區和工作區的內容都撤銷:

git reset --hard

//如果加上參數還可以撤銷已經commit的內容 例如:git reset --hard HEAD^

 

如果僅僅撤銷工作區的內容:

git checkout --file

 

說到底reset的本質是移動HEAD,起到了撤銷commit的作用。同時配合參數還可以修改工作區和暫存區(具體影響看模式,hard,soft,mixed)。



參考鏈接:

Git學習02 --暫存區,撤銷修改,刪除文件:https://www.cnblogs.com/zqlmmd/p/5541334.html

撤銷修改(撤銷本地工作區的修改):https://blog.csdn.net/tsq292978891/article/details/78966550

Git reset三種模式:https://www.jianshu.com/p/c2ec5f06cf1a


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM