git状态与git diff在显示未跟踪文件方面的内部工作方式有多大不同?

git状态与git diff在显示未跟踪文件方面的内部工作方式有多大不同?,git,Git,Git diff手册页上说 显示工作树与索引或树之间的更改、索引与树之间的更改、两棵树之间的更改、两个blob对象之间的更改或磁盘上两个文件之间的更改 在这里,我对定义中粗体部分的未跟踪文件有点困惑。 这就是我所做的 touch test.html git status " 它表明 blr mpjfs:workflow\u manager amazumde$git状态 论分行行长 未跟踪的文件: (使用“git add…”包含在将提交的内容中) test.html 但是当我执行git dif

Git diff手册页上说

显示工作树与索引或树之间的更改、索引与树之间的更改、两棵树之间的更改、两个blob对象之间的更改或磁盘上两个文件之间的更改

在这里,我对定义中粗体部分的未跟踪文件有点困惑。 这就是我所做的

touch test.html
git status
" 它表明

blr mpjfs:workflow\u manager amazumde$git状态
论分行行长
未跟踪的文件:
(使用“git add…”包含在将提交的内容中)
test.html
但是当我执行
git diff
时,这里没有显示任何内容 如果我使用git add添加文件,git diff将显示差异

我看了一眼 还是不确定

所以这里是我的问题“git diff是否显示了工作 工作中新创建的未跟踪文件的树和索引 目录“

编辑

如果它不应该显示未跟踪文件的差异,那么 描述有点不清楚?有什么地方可以清楚地看到它吗 叫出来

第二次编辑

另外,git status在显示未跟踪文件方面的内部工作方式与git diff有多大的不同


不,git diff不能显示工作目录中未跟踪创建文件的工作树和索引之间的差异,SVN也不能。不,git diff不能显示工作目录中未跟踪创建文件的工作树和索引之间的差异,SVN也不能。您的问题可能与此重复


正如在这些答案中提到的,你可以做一些类似于git diff的事情——没有索引跟踪的文件未跟踪的文件(答案来自@Harold)

你的问题可能与此重复

正如在这些答案中提到的,你可以做一些类似于git diff的事情——没有索引跟踪的文件未跟踪的文件(答案来自@Harold)

根据定义,“未跟踪的文件”不在索引中。(这似乎没有正确记录,但“跟踪文件”只是索引中有一个条目,而“未跟踪文件”则没有。这包括记录删除文件意图的索引条目的特例:即使该文件的索引条目上写着“不包括此文件”,也会跟踪该文件。)

因此,您的问题首先声明路径
p
不在索引中(即
p
未跟踪),然后询问git是否可以将通过路径
p
在索引中找到的文件与其他文件进行比较。正如你所看到的,这个问题很难回答,因为它提出了两个相互矛盾的主张:
P
不在索引中,同时,
P
在索引中。

根据定义,“未跟踪的文件”不在索引中。(这似乎没有正确记录,但“跟踪文件”只是索引中有一个条目,而“未跟踪文件”则没有。这包括记录删除文件意图的索引条目的特例:即使该文件的索引条目上写着“不包括此文件”,也会跟踪该文件。)


因此,您的问题首先声明路径
p
不在索引中(即
p
未跟踪),然后询问git是否可以将通过路径
p
在索引中找到的文件与其他文件进行比较。正如你所看到的,这个问题很难回答,因为它提出了两个相互矛盾的主张:
P
不在索引中,同时,
P
也在索引中。

那么描述不是有点不清楚/混乱吗?你知道有没有什么参考文献清楚地提到了它?描述不是有点不清楚/混乱吗?你知道有没有什么参考资料清楚地写出来了?嗨。。我在问题中明确指出,我看了一下,仍然不清楚。这里我说的是目录级别。。我在问题中明确指出,我看了一下,仍然不清楚。在这里我说的是目录级完美!!只有一个后续问题。那么git status是如何工作的呢?
git status
基本上运行两个比较:“HEAD vs index”告诉您下一次提交时设置了什么,而“index vs work dir”告诉您还没有设置什么。后者是特殊情况,因此如果工作目录中有一个文件不在索引中,它可能会在
--short
输出中绘制“未跟踪”投诉或“?”状态(但首先
git status
检查忽略/排除条目)。因此,一个特殊的情况(不是git diff本身)就是可以宣布“未跟踪”状态的地方。完美!!只有一个后续问题。那么git status是如何工作的呢?
git status
基本上运行两个比较:“HEAD vs index”告诉您下一次提交时设置了什么,而“index vs work dir”告诉您还没有设置什么。后者是特殊情况,因此如果工作目录中有一个文件不在索引中,它可能会在
--short
输出中绘制“未跟踪”投诉或“?”状态(但首先
git status
检查忽略/排除条目)。因此,一个特殊的情况(不是git diff本身)是可以宣布“未跟踪”的情况。
blr-mpjfs:workflow_manager amazumde$ git status

On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)


test.html