当前位置 博文首页 > 文章内容

    git checkout --file 和 git reset HEAD --file区别

    作者: 栏目:未分类 时间:2020-10-27 15:00:22

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



      首先需要知道工作区(working diretory)和暂存区(Stage)这两个概念.工作区的概念不仅包含你实际更改的文件还应当包括当前修改但未add存入暂存区的文件变化信息,暂存区的作用则是临时存储文件的变化信息,在git add file操作之后,暂存区中将记录file文件上的修改信息.暂存区的存在更细化了时间节点,要知道commit的往往是有重大改变的版本或者是在一次修改工作整体完成之后才使用commit.而在这之间需要保存的修改,自然需要一个缓存区暂时存放.
    廖雪峰的git教程中在“撤销修改”部分中,提到了几种情景和相应的git checkout与git reset命令.通过我的思考,在这个更直接地分析这两个命令的含义.
      git checkout -- file:撤销对工作区修改,这个命令是以最新的存储时间节点(add和commit)为参照,覆盖工作区对应文件file,这个命令改变的是工作区.
      git reset HEAD -- file:清空add命令向暂存区提交的关于file文件的修改(Ustage),这个命令仅改变暂存区,并不改变工作区,这意味着在无任何其他操作的情况下,工作区中的实际文件同该命令运行之前无任何改变.

     

    转自:https://www.cnblogs.com/instona/p/4243009.html