git 撤销相关

  1. 本地修改,但未执行 git add 命令
    git checkout . 撤销全部修改,修改的代码没了,不在工作区和暂存区
    git checkout fileName 撤销某个文件(需要带有相对路径,或者复制执行 git status 命令后显示修改的 fileName)
  2. 本地修改,执行了 git add 命令
    git reset HEAD . 撤销全部 staged,回到了 git add 前的状态,修改的代码在工作区
    git reset HEAD fileName 撤销某个文件
    备注: HEAD 与 head 这两种写法均可以
  3. 本地修改,执行了 git addgit commit 命令
    git reset commit_id 回到了执行 git add 命令之前的状态,此时修改的代码仍然在工作区,不在暂存区
    git reset --hard commit_id 回到了 commit_id 时的状态,此时修改的代码没了,不在工作区和暂存区

revert

本地修改,执行了 git addgit commit 命令后的其他措施
git revert commit_id 用一次跟 commit_id 完全相反的更改提交代码。
执行 git commit 命令后到 C 处了。

image.png

此时执行 git revert C,此时 head 指向了 D处,但是 D 处的代码与 B 处的代码完全一样。
image.png

因此, revert 命令相当于将 B 到 C 那次更改的代码又改回去了,然后提交,就得到了 D

你可能感兴趣的:(git 撤销相关)