Git撤销提交

Posted t8888

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>

以上是关于Git撤销提交的主要内容,如果未能解决你的问题,请参考以下文章

git 如何撤销已push的代码

Git学习01-提交代码,查看日志,回退,穿梭,撤销Github仓库代码的删除和拉取等

git add提交后撤销 ,出现git add Untracked files

怎么撤销 git commit 提交的代码

如何撤销Git操作?

Git提交撤销