git reset命令使用


版本回退

當前有三個commit提交版本
commit1
commit2
commit3
Git必須知道當前版本是哪個版本,在Git中,用HEAD表示當前版本
上一個版本是HEAD^,上上一個版本是HEAD^^
當前版本是在commit3
要回退到commit1或2,使用git reset命令

回退到上一版本commit2
git reset --hard HEAD^

如果還想返回到commit3。需要知道commit3的commit id 1094adb...
git reset --hard 1094
版本號沒必要寫全,前幾位就可以了,Git會自動去找。當然也不能只寫前一兩位,因為Git可能會找到多個版本號

git reset三種方式
git reset(--mixed) HEAD~1
回退一個版本,會將暫存區的內容和本地已提交的內容全部恢復到未暫存的狀態,
暫存區就是git add臨時提交到的地方。
未暫存的狀態就是將這些文件標記位待提交

git reset --soft HEAD~1
回退一個版本,不清空暫存區,將已提交的內容恢復到暫存區,不影響原來本地的文件(未提交的也不受影響)
這些文件還在暫存區中

git reset --hard HEAD~1
回退一個版本,清空暫存區,將已提交的內容的版本恢復到本地,本地的文件也將被恢復的版本替換

這個hard會將回退到該版本之后提交的內容都刪除或替換掉。。也就是回退到該版本后,項目不包含該版本后面修改的任何內容。
比如一個項目test文件夾中
第一次提交test1.txt
第二次提交test2.txt
第三次提交test3.txt

現在項目test文件夾中有三個文件
test1.txt,test2.txt,test3.txt
如果我們使用hard模式回退到第一次提交
git reset --hard HEAD~2
執行后,test文件夾中現在就只有test1.txt文件

如果我們使用mixed模式
git reset --mixed HEAD~2
test文件夾中還有這三個文件夾,
只不過test2.txt和test3.txt文件沒有打勾
會將之前提交的版本文件全部恢復到未暫存狀態

如果我們使用soft模式
git reset --soft HEAD~2
test文件夾中還有這三個文件夾
只不過test2.txt和test3.txt文件前面是+標記,表示已經git add 到暫存區中

 


免責聲明!

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



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