在Git中撤销上一次提交,可以使用git reset命令。
具体步骤如下:
- 使用git log命令查看提交历史,找到想要撤销的上一次提交的commit id。比如想撤销HEAD^,那么上一次提交的commit id就是HEAD~1。
- 使用git reset –soft HEAD~1命令撤销上一次提交。
–soft参数表示只撤销commit,不撤销add和恢复到未add状态。
举例:
查看提交历史:
$ git log
commit f789d3b6ad6ef87f82c0c5ac505e2521de907a2c (HEAD -> master)
Author: jonny <jonny@example.com>
Date: Sun May 2 14:50:14 2021 +0800
add file3
commit abc123def (HEAD~1)
Author: jonny <jonny@example.com>
Date: Sun May 2 14:45:14 2021 +0800
add file2
撤销上一次提交:
$ git reset --soft HEAD~1
此时,文件file3会恢复到未add状态,可以重新提交。提交历史会返回到HEAD~1对应的提交abc123def。
git reset 命令的常用参数如下:
–soft: 只撤销commit,不撤销add和修改。
–mixed: 默认参数,撤销commit和add,不撤销修改。
–hard: 撤销commit、add和修改,恢复到某次提交状态。
所以根据实际情况选择参数,可以灵活撤销到任意一次提交,回滚版本。
git reset 命令可以用来撤销上一次提交或者回滚到任意一次历史提交。理解reset的基本用法和三种参数的作用,可以自由控制 Git 版本库。