git-diff没有显示任何内容

git-diff没有显示任何内容,git,git-diff,git-stash,Git,Git Diff,Git Stash,在我做了一个git重置--hard HEAD之后,我做了一个git status并且一切都是干净的。然后,我执行一个git checkout stash@{0}--pom.xml以获取存储中的pom.xml文件。当我执行git status时,它会显示modified:pom.xml。当我执行一个git diff时,它什么也不显示。为什么?因为git在登台步骤中添加了更改 您可以恢复阶段性更改: git restore --staged pom.xml git diff 这是一个问题:(1)g

在我做了一个
git重置--hard HEAD
之后,我做了一个
git status
并且一切都是干净的。然后,我执行一个
git checkout stash@{0}--pom.xml
以获取存储中的pom.xml文件。当我执行
git status
时,它会显示
modified:pom.xml
。当我执行一个git diff
时,它什么也不显示。为什么?

因为git在登台步骤中添加了更改

您可以恢复阶段性更改:

git restore --staged pom.xml
git diff
这是一个问题:(1)git diff是什么意思,以及(2)什么是隐藏。用一点(3)git status告诉你的,扔进去

让我们从第二个开始。一个隐藏是两个提交,一个表示索引,另一个表示工作树。因此,从存储中检出文件会影响索引和工作树

那么现在
git diff
plain and simple(无修改器)询问:工作树与索引有何不同。在这方面,它没有区别,因此没有显示输出。在索引树和工作树中,这个文件的修改版本都是相同的,这很好——如果您想这样做的话,您已经准备好提交了。如果您的问题是索引与头部的差异,那么您应该询问git diff--staged

最后,
git status
与simple
git diff
不同,它执行两个比较:它将工作树与索引进行比较,告诉您哪些修改添加到了索引中,哪些没有添加到索引中;它将索引与HEAD进行比较,告诉您现在进行提交会做什么

所以总数是这样的:

HEAD    index    working tree
-----------------------------
 old     new         new
这就是您对Git提出的问题的回答所反映的情况(
Git diff
Git status


换句话说:
git status
告诉你的是你通过询问
git diff--staged
git diff
可以学到的东西。但是你从来没有问过git diff--staged,所以你看不到答案的那一部分。

因为你的更改已经staged了。检查
git diff--staged
请单击并显示
git status
的确切输出?