Git撤销上一次的提交已git push

作者:IT技术圈子 浏览量:167   发表于 2024-08-02 11:15 标签:

一、使用git reset撤销提交:

git reset 命令格式:

git reset [--soft | --mixed | --hard] []

------------------------------------------------
参数说明:
1. 参数--hard:git reset --hard ①替换引用的指向。引用指向新的提交ID。
②替换暂存区。替换后,暂存区的内容和引用指向的目录树一致。
③替换工作区。替换后,工作区的内容变得和暂存区一致,也和HEAD所指向的目录树内容相同。

2. 参数--soft:git reset --soft 只更改引用的指向,不改变暂存区和工作区。
只改变commit(指针指向),stage index 和 working directory 不变

3. 参数--mixed(默认该参数): git reset 更改引用的指向及重置暂存区,但是不改变工作区。

操作:

git reset --hard HEAD^
git push

------------------------------------------------
HEAD^指的是上一次提交,上上次是HEAD^^,简洁写法可以写成HEAD~2 ,HEAD~3,以此类推。

二、使用git revert撤销提交:

git revert 命令格式:

git revert [--[no-]edit] [-n] [-m parent-number] [-s] [-S[]] …
git revert (--continue | --skip | --abort | --quit)

操作:

git revert HEAD
git push

三、git reset和git revert区别:

revert撤销指定提交的修改,并生成一次新的提交,需要填写提交注释,保留以前的历史记录;
reset将HEAD指针指到指定提交,撤销的提交记录不会出现在历史记录中。