如何在git中撤销最近的本地提交git commit?

我最近不小心把一个错误的文件提交(git commit)到了git仓库中,但是还没有push到远程,我要怎么做才能撤销这次commit呢?

gitgit commit
1
215
小课
小课2022-05-06 13:33
1 个回答
git commit -m "..."                          # (0: 错误的提交)
git reset HEAD~1                             # (1: 恢复到没提交的状态)
[ edit files as necessary ]                    # (2: 修改错误)
git add .                                    # (3)
git commit -m                                # (4: 重新提交)

git reset主要用于撤销提交,但是它有几模式需要关注一下。

  • git reset撤销commit,恢复到没有提交的状态,撤销的commit的改动仍然保留,可以通过git add和git commit再次提交。
  • git reset --hard撤销commit,恢复到上一次的提交状态,撤销的commit改动不保留。
  • git reset --soft撤销commit,恢复到没有提交的状态,撤销的commit的改动和索引仍然保留,直接通过git commit即可提交。

HEAD~1,后面的数字表示撤销的commit数量,如果一次撤销最近3次提交,可以执行git reset HEAD~3。另外如果通过git reset --hard撤销导致commit改动丢失,仍然可以通过找回,通过git reflog可以查看最近的操作的commit的sha值,执行git checkout -b 分支名 sha值,就可以在新分支上恢复到当时的状态。

1
小课
小课2022-05-06 14:23
你的回答

内容