git 撤销文件的修改(checkout/reset )

使用 git 撤销某个文件的修改,分为两种情况:

情况1:在工作区已修改,但并未提交到暂存区(即并没有add)

撤销单个文件修改,使用下面命令:

$ git checkout -- 文件名

若想撤销工作区中所有文件的修改,则

$ git checkout .

注意:git chekcout 是让文件回到最近一次该文件git commit或git add时的状态。

2.工作区修改了之后,提交到了暂存区(即add),如何撤销修改?

这里也分为两种情况:

2.1 对于该文件来说,还没有commit过一次。这时候,git status 后git给出提示:

在这里插入图片描述
是的,使用git rm --cached 文件名命令来放弃该文件的暂存。
这时,你再用git status命令查看:
在这里插入图片描述
上面的意思就是说,test1文件已经修改过了,没有提交到暂存区,不被git追踪。此时,你用git checkout -- file是没有用的。

因为,前面提到过,git checkout -- file是回到最近的一次commit或者add。但是,当前你还没有一次commit过,并且,add也已经撤销了,所以Git找不到该文件在以往记录中的存在,自然没法用git checkout -- file
在这里插入图片描述
git提示你:该文件在Git目前所知的文件中找不到。此时,你可以任意的对此文件进行修改了,想好了之后,再提交到暂存区。

2.2 对于要撤销的文件,你已经有了commit的记录了。

要先:git reset HEAD file 让该文件回到工作区的状态。
然后:git chekcout -- file即可

先使用git checkout – 文件,文件就会变成添加到暂存区后的状态,也就是第一中情况,再使用 reset 命令即可将文件恢复到与版本库一致的状态。

总之,记住一点:
“git checkout – 文件”命令,撤销的是工作中文件的修改,
而“git reset HEAD – 文件”命令,撤销的是暂存区中文件的修改。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值