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#把仓库最新版本放入暂存区,也可以把暂存区退回到工作区
    

你可能感兴趣的:(git diff的具体用法浅析)