git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit. git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容. git reset --hard HEAD~1 运行git st, 没有任何变化 git reset --soft(默认) HEAD~1 运行git st, 提交过的内容位于暂存区,准备提交. gi