本文最后更新于1 分钟前,文中所描述的信息可能已发生改变。
git回滚
当git提交了错误代码,如果提交的代码量较少,可以将本地代码与之前版本进行diff,让后覆盖掉之前提交的内容。 可是如果代码量比较大,或者提交了敏感信息,如何回滚呢?
首先git commit命令为add 将本目录下所有文件加入到提交队列git add . git commit -m '提交说明' commit 提交到本地仓库执行commit后,还没执行push时,想要撤销这次的commit,该怎么办?
解决方案:
使用命令:
git reset --soft HEAD^ 用于撤销最近的一次提交,但保留提交所做的更改。这个命令将当前分支的 HEAD 指针移动到前一个提交,并将更改保留在工作区和暂存区中。 这样就成功撤销了commit内容,如果想要连着add也撤销的话,–soft改为–hard(删除工作空间的改动代码)。
注意 如果已经push到了远程仓库。这种方式也可以撤销掉已经push的内容,就是在执行了上面的命令后 再执行git push --force
强制推送改变到远程仓库。会覆盖掉远程仓库的历史记录,慎用。
命令详解:
HEAD^
表示上一个版本,即上一次的commit
,也可以写成 HEAD1
。如果进行了两次的 commit
,想要都撤回,可以使用 HEAD2
。
--soft
不删除工作空间的改动代码,撤销commit
,但不撤销git add file
"。--hard
删除工作空间的改动代码,撤销commit
且撤销git add
。
另外,如果 commit
注释写错了,首先要修改注释。有其他方法也能实现, 例如: git commit --amend
。这时会进入 vim 编辑器,修改完成所需的注释后保存即可