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>