2015-03-03 83 views
1

git的差异手册页说,工作树和索引或树之间git status与git diff在内部的工作方式有何不同,以显示未跟踪的文件?

显示的变化,如果两个Blob对象之间或指数和一棵树,两两棵树之间变化,变化之间变化磁盘上两个文件之间的变化。

我在这里对于未定义的文件与定义的粗体部分有关的困惑。 这里是我做过什么

touch test.html 
git status 

' 它显示

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 

但是当我做git diff没有显示在此处 如果我添加使用git add git的差异文件显示差异

我看了一下Can I use git diff on untracked files? 还不确定。

因此,这里是我的问题“是否在工作 目录git的差异显示工作 树和指数未经跟踪/创建的文件之间的区别”?

编辑

如果它不应该以示对未跟踪文件的差异,是不是 描述有点不清楚?是否有任何地方明确呼叫 ?

第二个编辑

而且多么不同,然后git的内部状态的作品比git的差异,以显示未跟踪文件?

回答

3

的“未跟踪文件”是这些问题的答案也提到了可能重复,顾名思义,不在索引中。 (这似乎没有被正确记录,但是“跟踪文件”只是一个在索引中有条目的文件,而“未跟踪文件”是没有的。这包括记录索引条目的特殊情况意图删除一个文件:即使该文件的索引条目显示“不包含此文件”,也会跟踪这样的文件。)

你的问题,因此,声称路径P开始不在指数(即P是未经跟踪),然后询问是否混帐可以通过路径P在索引中找到的文件进行比较,以其他一些文件。正如你所看到的,很难回答这个问题,因为它提出了两个矛盾的说法:P而不是在索引中,同时,那个P的索引。

+0

完美!只是一个跟进问题。那么git状态如何工作? – 2015-03-03 12:18:47

+0

'git status'基本上运行了两次比较:“HEAD vs index”告诉你进入下一次提交的设置,以及“index vs work-dir”来告诉你还没有设置什么。后者是特殊的,因此如果工作目录中有一个文件不在索引中,它可能*绘制一个“未跟踪”的投诉或“??”在'--short'输出中的状态(但是首先'git status'检查一个忽略/排除项)。因此,一个特定的案例(不是'git diff'本身)就是可以宣布“未跟踪”的地方。 – torek 2015-03-03 16:06:55

1

不,git diff不能显示工作目录中未跟踪的创建文件的工作树和索引之间的区别,SVN也不能。

+0

是不是描述不清楚/混乱呢?你知道有明确指出的参考吗? – 2015-03-03 08:34:24

+0

我认为git文档会帮助你很多。 http://git-scm.com/docs/git-diff – jansesun 2015-03-03 08:42:25

0

你的问题是这个can-i-use-git-diff-on-untracked-files

正如你可以这样做git diff --no-index tracked_file untracked_file(回答@Harold)

+0

嗨..我已经清楚地提出了在我看了这个问题,仍然不清楚的问题。这里我说的是目录级别 – 2015-03-03 08:38:18

相关问题