git - 这些 git diff 命令之间有什么区别?

标签 git git-diff

以下git命令有什么区别?

  1. git diff HEAD
  2. git diff HEAD^
  3. git diff --cached 或同义词 git diff --staged
  4. git diff

最佳答案

  1. git diff HEAD - 显示自上次提交后发生的变化。
  2. git diff HEAD^ - 显示自最近一次提交之前以来发生的变化。
  3. git diff --cached - 显示通过 git add 添加到索引但尚未提交的内容。
  4. git diff - 显示已更改但尚未通过 git add 添加到索引的内容。

看起来像这样:

     Working
    Directory  <----+--------+------+
        |           |        |      |    
        |           |        |      |
        V           |        |      |    
    "git add"       |        |      |    
        |         diff       |      |    
        |           |        |      |    
        V           |        |      |    
     Index     <----+    diff HEAD  |            
        |           |        |      |       
        |           |        |      |
        V           |        |      |       
  "git commit"      |        |      |
        |     diff --cached  |      |
        |     diff --staged  |      |
        V           |        |      |
      HEAD     <----+--------+      |
        |                           |
        |                        diff HEAD^
        V                           |
previous "git commit"               |
        |                           |
        |                           |
        V                           |
      HEAD^    <--------------------+

关于git - 这些 git diff 命令之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3686452/

相关文章:

git - 如何组织具有 vendor 依赖项的 Go 项目?

git - 如何在 gitk 中设置 diff 选项(--compaction-heuristic)

git - 使用 git 比较来自两个提交的一个文件

git - SQLPro read_passphrase : can't open/dev/tty: Device not configured

git - github 托管对于私有(private)存储库有多安全?

git - 如何让 git log 显示相对于当前目录的文件路径?

git diff 在文件相同时报告差异

git - 在 Git 中生成特定提交的差异文件

git - 如何为发布流程配置 GitVersion?

database - 如何将数据库置于 git(版本控制)之下?