git diff的具体用法浅析

所有用法

Git分为 工作区暂存区仓库

git add#把工作区内容放入暂存区
git commit#把暂存区内容提交到仓库
git diff#查看工作区与暂存区差异
git diff --cashed#查看暂存区与仓库差异
git diff HEAD#查看工作区与仓库差异

以新建文件流程从头开始

  1. 在工作区新建一个文件(内容为一行文字)

    vim new.txt
    
  2. 查看工作区与暂存区区别==(此时暂存区没有东西)==

    git diff new.txt
    

    结果为空(没有区别)

  3. 将文件提交到暂存区

    git add new.txt
    

    此时暂存区内容与工作区一致,还是没有区别

  4. 修改工作区文件内容(添加一行)

    vim new.txt
    
  5. 可以查看一下目前的所有区状态

    git status
    

    显示为:

    ​ 第一个版本的new未commit

    ​ 第二个修改版本的new未add+commit

    (==注意此时若commit则提交的是未修改的第一版==)

    各区情况:

    • 工作区为修改后的两行内容
    • 暂存区为第一次存入的一行内容
    • 仓库为空
  6. 查看工作区与暂存区的区别

    git diff new.txt
    

    结果为新添加的一行

  7. 查看暂存区与仓库的区别

    git diff --cached -- new.txt
    

    因为仓库为空,所以结果为第一版的一行

  8. 查看工作区与仓库的区别

    git diff HEAD -- new.txt
    

    仓库为空,结果为修改后的两行

    ==到这里应该基本明白了三种diff的区别==

    可以用9-10练习

  9. 提交在暂存区的第一个版本

    git commit -m "first version"
    

    此时工作区为修改后未add的第二版

    暂存区为空

    仓库为第一版

  10. 继续练习下面的命令,先根据自己的判断猜测结果

    git status
    git diff --cached -- new.txt#为空
    git diff HEAD -- new.txt#为后添加的一行
    
  11. 另外的两个反向命令

    git checkout#撤销工作区修改,把暂存区最新版本放入工作区
    git reset HEAD#把仓库最新版本放入暂存区,也可以把暂存区退回到工作区
    

推荐阅读更多精彩内容

  • 这两天,一部小短片突然在网上火了起来。名字叫《啥是佩奇》,故事发生在快过年的时候,一个在农村的爷爷问他的小孙子过年...
    长乐未央115阅读 202评论 1 12
  • 现在很多家长已经意识到应该早点让孩子学习编程。为什么要让孩子学习编程? 人工智能与大数据时代来临,编程将成为一种基...
    酷叮猫少儿编程阅读 24评论 0 0
  • 今天本来没想写文章的,但今天一天的朋友圈都是许明国许哥的文章,我想我也该做点什么了,我得到消息的哪一刻我就想到了这...
    鲍鲍TT阅读 5评论 0 1
  • “既然我们都要飘零落下, 干嘛还要生长在这里呢?” “是为了享受太阳和月亮。 是为了一起过那么长一段快乐时光。 是...
    风的色彩_4e39阅读 242评论 0 1
  • 习惯了每隔几天就买束小花回来,再自己修修剪剪,因为我觉得插花总能美化心情 闲暇时光,当你在享受它的时候,它很美,你...
    Cat_Lan阅读 62评论 0 0