1. 使用 git reset
(a)软重置
如果你想撤销最近的提交,但保留文件的更改(即将它们放回暂存区),可以使用:
git reset --soft HEAD~1
(b)混合重置(默认)
如果你想撤销最近的提交,并将更改放回工作目录(即不再暂存这些更改),可以使用:
git reset HEAD~1
(c)硬重置
如果你想完全丢弃最近的提交及其更改,可以使用:
git reset --hard HEAD~1
注意:硬重置会永久删除未提交的更改,请谨慎使用。
2. 使用 git revert
如果你已经将提交推送到远程仓库,并且不想改变历史记录,可以使用 git revert
。这个命令会创建一个新的提交,撤销指定的提交:
git revert HEAD
这会生成一个新的提交,内容是撤销最后一次提交的更改。
3. 查看提交历史
在执行任何操作之前,建议查看提交历史,以确保你要撤销的提交是正确的。你可以使用:
git log
这个命令会显示提交历史,包括每个提交的哈希值、作者、日期和提交信息。
4. 强制推送(如果需要)
如果你使用 git reset
并且需要将更改推送到远程仓库,你可能需要强制推送:
如果你不知道当前在哪个分支可以查看一下(因为强制推送不可逆,所以确定好强制推送到正确的分支)!!!
4.1、查看当前分支
git branch
4.2、强制推送
git push --force
4.3、强制推送到指定的分支
git push origin <branch-name> --forc
警告:强制推送会覆盖远程分支的历史记录,可能会导致其他开发者的本地仓库出现问题。因此,在团队协作时应谨慎使用。