1. 已修改 未暂存
已经修改了文件,还未进行 git add。
即工作区的内容不想要了。
恢复方法
使用以下任意命令
git checkout .git checkout -- <FILENAME>git reset --hard
2. 已暂存 未提交
已经进行了 git add,还未进行 git commit
即暂存区的内容不想要了
恢复方法
使用以下任意命令
git reset git checkout .git reset --hardgit reset HEADgit reset HEAD -- <FILENAME>
3. 已提交 未推送
已经进行了git commit,还未进行 git push
恢复方法
使用远程仓库覆盖本地仓库
git reset --hard origin/master
4. 已推送
已经进行了git push
恢复方法
回滚本地仓库,强制推送覆盖远程仓库( 切记回滚后不要马上git pull )
git reset --hard HEAD^ git push origin HEAD --force // 强制提交一次,之前错误的提交就从远程仓库删除git reset --soft HEAD^ // 撤销 commit,本地修改还会存在
5. 其他情况
丢弃某个节点后的全部提交
即 HEAD 指针指向该节点
git reset --hard <COMMITID>