git撤销commit

假设我们有这样的历史提交记录:

G1 - G2 - G3 - B1 - B2 - B3

G1 - G3是好的commit,B1 - B3是坏的commit,我们想撤销坏的commit,恢复到G3的状态

  1. git reset:
    如果修改还没有push到sever,可以使用reset命令

    $ git reset --hard HEAD~3
  2. git revert:
    如果修改已经push到server,要使用revert,下面的方式是一次revert多个commit:

    $ git revert --no-commit HEAD~2^..HEAD(^表示父级,上一级)
    或者
    $ git revert --no-commit HEAD~3..HEAD(左开右闭, --no-commit选项通知git执行revert,但是不自动commit)

然后我们可以查看当前的仓库状态(git status),然后commit,执行完之后的历史记录如下:

G1 - G2 - G3 - B1 - B2 - B3 - R`

R`将使仓库状态返回到G3

也可以使用以下方法,指定所有需要revert的commit:

$ git revert --no-commit HEAD HEAD~1 HEAD~2

文章目录
,