Git中撤銷提交


Git的幾種狀態

未修改
       原始內容
已修改    ↓   
       工 作 區
已暫存    ↓    git add
       暫 存 區
已提交    ↓    git commit
       本地倉庫
已推送    ↓    git push
       遠程倉庫

注意:下面所有命令每一個代碼段是相互獨立的,為了解決一個問題,請不要使用多個代碼段。所有命令均經過本人測試,由於測試環境是簡單的Git倉庫沒有過多的數據,可能在復雜環境回出現錯誤。如發現問題請直接評論區指出。請仔細分析使用情況,丟失數據與本人無關。

已修改 未暫存

已經修改了文件,還未進行git add
即工作區的內容不想要了。

恢復方法

使用以下任意命令

git checkout .
git checkout -- <FILENAME>
git reset --hard

已暫存 未提交

已經進行了git add,還未進行git commit
即暫存區的內容不想要了

恢復方法

使用以下任意命令

git reset
git checkout .
git reset --hard
git reset HEAD
git reset HEAD -- <FILENAME>

已提交 未推送

已經進行了git commit,還未進行git push

恢復方法

使用遠程倉庫覆蓋本地倉庫

git reset --hard origin/master

已推送

已經進行了git push

恢復方法

回滾本地倉庫,強制推送覆蓋遠程倉庫

git reset --hard HEAD^
git push -f

其他情況

丟棄某個節點后的全部提交

即HEAD指針指向該節點

git reset --hard <COMMITID>


免責聲明!

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



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