Git reset命令的使用

2021-09-23 10:25:14 字數 2052 閱讀 6924

weiweilong 關注

git reset 命令有三個主要選項:git reset --soft; git reset --mixed; git reset --hard;

git reset --soft

將head引用指向給定提交。索引和工作目錄的內容是不變的,在三個命令中對現有版本庫狀態改動最小。

git reset --mixed(git reset預設的模式)

head引用指向給定提交,並且索引內容也跟著改變,工作目錄內容不變。這個命令會將索引變成你剛剛暫存該提交全部變化是的狀態,會顯示工作目錄中有什麼修改。

git reset --hard

head引用指向給定提交,索引內容和工作目錄內容都會變給定提交時的狀態。也就是在給定提交後所修改的內容都會丟失(新檔案會被刪除,不在工作目錄中的檔案恢復,未清除**站的前提)。

用**看起來會更清楚些:

操作一下看一下實際效果:

首先在乙個版本庫中修改追蹤檔案,然後提交,description叫做add button

使用git log 檢視歷史提交

copy記錄add button的前一次提交add label的雜湊id 「7c5a658fbceb904ad877c4254d183e68aed1ddd0」,作為我們reset的給定提交。

git stauts 檢視一下當前版本庫中檔案狀態

顯示nothing to commit ,在add button 提交後未對版本庫中檔案做修改

執行git reset --soft 7c5a658fbceb904ad877c4254d183e68aed1ddd0命令,然後使用git status 檢視檔案狀態。

然後再使用git log 檢視歷史提交記錄。

會發現add button 已經沒有了,版本庫已經回滾到add label提交的狀態了,但是在我們add button 提交修改的檔案 裡面修改的內容沒有丟失,只是回到了未提交的狀態。

將檔案再次提交,同樣取名add button ,繼續git reset --mixed操作。

同樣是回滾到了add button 之前的add label 提交。被修改的檔案內容也沒有丟失,但是修改的檔案為紅色了(未執行add 操作)。

將檔案再次提交,同樣取名add button ,繼續進行git reset --hard操作。

執行完git reset --hard 命令後,使用git status 檢視檔案狀態,回滾到add label 提交,add button被修改的檔案內容已經沒有了,丟失了。版本庫中的檔案已經完全回到剛提交完add label時的狀態。

git reset 根據需要使用不同的命令,使用 --hard時一定考慮回滾後檔案的丟失!

git reset命令三種命令的區別

預設選中的型別,會將工作目錄的修改 暫存區的內容 git add操作提交的地方 以及由 reset 所導致的新的檔案差異,都放進工作目錄。比如 現在reset到第一次提交,b和c檔案都會放到工作目錄,將之前提交的版本檔案全部恢復到未暫存狀態 回退乙個版本,不清空暫存區,將已提交的內容恢復到暫存區,不...

git reset 使用及回滾

目錄 一 git reset 引數 1.soft 2.mixed 3.hard 二 如何回滾檔案 1.修改完,還未執行git add 2.使用git add 提交到暫存區,還未commit之前 3.已經git commit,還未git push 4.已經git push 僅僅移動當前head指標,不...

git reset 使用及回滾

git reset 使用及回滾 一 git reset 引數 1.soft 2.mixed 3.hard 二 如何回滾檔案 1.修改完,還未執行git add 2.使用git add 提交到暫存區,還未commit之前 3.已經git commit,還未git push 4.已經git push 一...