当我们想撤销我们的修改时,此时我们可能处于这四种场景之一:
- 修改仍在工作区,尚未通过git add 提交到暂存区
直接使用 git checkout -- filename撤销对文件的全部修改,文件变回上一次提交后的样子
- 修改已经提交到了暂存区(stage),未commit到版本库
使用git reset head filename,(其中head表示当前版本,也就是上次commit之后产生的版本)使用后使本次修改从暂存区
撤出,此时就转变为了上述第一种情况,使用git checkout -- filename即可撤销修改
- 修改已经被commit到版本库,但未push到远程仓库
这种情况就要使用git版本回退的功能了,使用git reset --hard ^head即可实现撤销操作(^head表示上一个版本),
注:使用git reset --hard 版本id,git log可以查询版本id
- 修改已经push到了远程分支
同样使用版本回退功能,回退后再push到远程分支,覆盖点上一次提交内容