以一个readme.txt为例,先做一个初始化commit。

  1. echo "hello world">>readme.txt添加一行内容
  2. 使用git add添加前:
    2.1 git status查看哪些文件发生了变化,可以看到modified: readme.txt
    2.2 git status -s是简略版的git status,可以看到M readme.txt
    git status
    2.3 git diff或者git diff readme.txt查看文件发生了哪些变化:
    可以看到 +hello world
    git diff
  3. 使用git add .添加文件到缓冲区(staging area)后再次查看变化:
    3.1 git statusgit status -s基本结果一样,只是信息从Changed not staged for commit变成Changes to be committed
    git status 2
    3.2 git diff --cached或者git diff --staged
    查看缓冲区的文件变化(此时git diff已经无信息了,因为文件都被加到了缓冲区)+hello world
    git diff
  4. git diff HEAD
    添加另外一行内容echo "This is Simon">>readme.txt,然后此时
    4.1 git diff可以看到在helloworld基础上+This is Simon
    在这里插入图片描述
    4.2 git diff --cached可以看到还是上次放到缓冲区的内容+hello world
    git diff
    4.3 git diff HEAD可以看到+helloworld+This is Simon。所以git diff HEADgit diffgit diff --cached的合并。
    git diff HEAD
    总结:
    git status 查看改变的文件列表
    git status -s 查看改变的文件列表简化版
    git diff或者git diff filename查看不在缓冲区的文件发生的改变
    git diff --cached或者git diff --staged查看缓冲区的文件发生的改变
    git diff HEADgit diffgit diff --cached的合并
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐