git 回滚与撤销

git 回滚与撤销

git的撤销与回滚在平时使用的还是比较多的,比如像将某个修改后的文件撤销到上一个版本,或者是想撤销某次多余的提交,都要用到git的撤销和回滚操作。
撤销分两种情况,一个是commit之前,一个是commit之后。

一、git commit 之前
a.未添加到暂存区的撤销(没有git add)
可以通过
git checkout -- filename 来撤销修改
将多个文件一次性撤销可以用
git checkout -- .

b.已经添加进暂存区的撤销(git add后)
从暂存区撤销
git reset HEAD filename
一次性将所有暂存区文件撤销回来
git reset HEAD


二、git commit之后
如果当commit提交后想撤销的话,这就需要 revert 命令。git revert 命令是撤销某次操作,而此次操作之前和之后的提交记录都会保留。
通过git log查看提交记录
然后使用revert 后面跟commitId 撤销此次提交
git revert commitId
然后再推送到远端,更新远端代码,修改的文件就撤销回来了。注意的是revert奇数次生效,偶数次又回到之前的修改状态。

还有就是如果想回到之前的某个版本,可以用reset命令,可以回退到某次提交,那 该提交之后的提交都会回滚,不过这种覆盖是不可逆的,之前的提交记录都没有了。所以避免使用reset。
用法:
git reset --hard commitId (--hard 强制将缓存区和工作目录都同步到指定的提交)
然后再提交到远端覆盖。

原文地址:https://www.cnblogs.com/caohongchang/p/13411258.html