在 Git 中撤销已提交的更改有两种方法,分别是使用 git revert
和 git reset
命令。
git revert
撤销已提交的更改使用 git revert
命令可以创建一个新的提交,将指定的提交(可以是某个提交的 SHA-1 标识符、分支名或者某个提交的相对引用)的更改撤销掉。新提交会将这些更改应用回来,但是会将更改反转过来,以达到撤销的效果。
具体步骤如下:
$ git revert <commit>
其中,<commit>
是需要撤销的提交的标识符。执行该命令后,会出现一个编辑器,让你输入撤销该提交的原因。编辑器也可以通过 -m
选项来指定,以避免多个父提交的问题。
git reset
撤销已提交的更改使用 git reset
命令可以将当前分支的头指针移动到另一个位置,以撤销之前的提交。该命令有三个选项,分别是 --soft
、--mixed
和 --hard
,它们分别对应着不同的撤销情况,需要谨慎使用。
具体步骤如下:
$ git reset <commit> --<option>
其中,<commit>
是需要撤销的提交的标识符,<option>
是撤销的选项,可以是 --soft
、--mixed
或者 --hard
。
需要注意的是,使用 git reset
命令撤销已提交的更改会将之前的更改永久删除,因此在使用前需要非常小心。