主要有两种方法用来撤销变更 —— 一是 git reset,还有就是 git revert

    git reset 通过把分支记录回退几个提交记录来实现撤销改动。你可以将这想象成“改写历史”。git reset 向上移动分支,原来指向的提交记录就跟从来没有提交过一样。
    该命令必须有一个参数表示将当前分支撤销到何处。
    image.png

    git reset HEAD~1
    image.png

    git reset 执行后,已经提交的内容会撤销到工作区

    虽然在本地分支中使用 git reset 很方便,但是这种“改写历史”的方法对大家一起使用的远程分支是无效的
    为了撤销更改并分享给别人,我们需要使用 git revert
    image.png

    git revert HEAD
    image.png
    在当前分支上撤销目的分支,即在当前main分支上撤销HEAD指向的记录并更新当前分支main
    要撤销的提交记录后面居然多了一个新提交!这是因为新提交记录 C2' 引入了更改 —— 这些更改刚好是用来撤销 C2 这个提交的。也就是说 C2' 的状态与 C1 是相同的。

    revert 之后就可以把你的更改推送到远程仓库与别人分享啦。