git常用的撤销操作#附有详细实例讲解

在任何一个阶段,你都有可能想要撤消某些操作, 下面主要讲了几个关于不同情况下的撤销操作

git commit --amend

操作命令意义备注
git commit --amend会将暂存区中的文件提交并且修改提交信息如果自上次后未做任何修改,则只提交修改信息

实例:
例如你提交后发现忘记了暂存某些需要的修改,这时如果提交的话就会再生成一条提交历史,但是你可以这么做

git commit --amend
#最终你只会有一个提交——第二次提交将代替第一次提交的结果

撤销前:在这里插入图片描述
撤销后:
在这里插入图片描述

git checkout – file

命令意义备注
git checkout – file还原成上次提交时的样子你对那个文件做的任何修改都会消失

实例:
如果你并不想保留对 hello.txt 文件的修改怎么办?
这时候就可以使用

git checkout – hello.txt
#注意:你对那个文件做的任何修改都会消失——你只是拷贝了另一个文件来覆盖它。 除非你确实清楚不想要那个文件了,否则不要使用这个命令

撤销前:
在这里插入图片描述
撤销后:
在这里插入图片描述

git reset

下面是高级用法来啦
重置HEAD操作

操作命令意义备注
git reset [–soft]撤销上一次 git commit仅移动 HEAD,不会改变索引和工作目录
git reset [–mixed]它依然会撤销一上次 提交,但还会 取消暂存 所有的东西回滚到了所有 git add 和 git commit 的命令执行之前
git reset [–hard]撤销了最后的提交修改,包括暂存区和工作区的修改注意:该操作不可逆,撤销了就没了,找不回来,这个如果不确定修改的文件内容是否需要保存就不建议使用

实例:
git reset操作和git reset --soft --mixed效果一样
想象以下出现这种情况,你提交了不想提交的内容,这时候只是想重新修改下再次提交,也就是想撤销提交不想撤销修改,那就可以使用下面的命令啦

git reset --soft HEAD^
#表示相对于HEAD的上一次,依次多个^表示撤销的是前面几次
#如果想撤销的是前面几次还可以指定hash-id

撤销前:
提交前
撤销后:
提交后
取消暂存区:
取消前:
在这里插入图片描述
取消后:
在这里插入图片描述
–mixed这个选项本质上和–soft没什么区别,目前只是撤销提交记录,不撤销修改内容
下面的–hard它的作用是一并连修改的内容都撤销回上次提交时
撤销前:
撤销前
撤销后:
在这里插入图片描述
前面讲述了 reset 基本形式的行为,不过你还可以给它提供一个作用路径。 若指定了一个路径,reset 将会跳过重置提交,并且将它的作用范围限定为指定的文件或文件集合,它还有 取消暂存文件 的实际效果

git reset hash-id – file

实例:
撤销文件修改前
在这里插入图片描述
撤销文件修改后:

在这里插入图片描述

git revert

还有一种撤销方法,不过这种和前面的reset又不同,它会撤销上一次修改的内容,并且还会生成一次新的提交,
实例:
撤销前

在这里插入图片描述
撤销后:
在这里插入图片描述

这里总结下:

撤销的操作命令主要有git commit --amend git checkout,git reset,git revert
git commit --amend 会将暂存区中的文件提交并且修改提交信息,如果自上次后未做任何修改,则只提交修改信息|
git checkout命令不仅可以撤销文件修改而且也可以切换不同分支
git reset命令不同选项–soft --mixed --hard撤销的程度不同,但是–hard撤销是不可逆的,如果不确定要不要删除文件千万不要用这个选项
git revert命令可以在撤销中间提交的修改内容的同时保留所有的提交记录,并且生成新的提交,这个一般想修改中间版本提交的修改又不想破坏历史记录特别使用

以上命令不同情景下有不同的用途,大家可以根据实际情况灵活使用!

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值