在Git中确定文件状态的标准

时间:2011-08-26 15:52:24

标签: git

我总结了以下标准:

  

Committed =存储在 .git 目录中。

     

修改=自签出后更改,但未在暂存区域中更改。

     

Staged =已修改并放入暂存区域。

     

Tracked = ???

     

未跟踪= ???

但我不知道如何将文件定义为已跟踪或未跟踪。我想必须有某种跟踪文件集来搜索。虽然看起来如此自然,但是新创建的文件被Git视为未跟踪。

感谢。

2 个答案:

答案 0 :(得分:1)

按流行用法跟踪,与提交的内容同义。

未跟踪,是尚未提交的内容。例如,刚添加到工作目录的文件未跟踪。而且,根据流行的定义,即使尚未提交,即使添加到索引/暂存的内容也被认为是未跟踪的。

答案 1 :(得分:0)

我不确定是否有正式的定义,但是如果你认为跟踪是在HEAD中,那么这意味着你在之前的提交中跟踪了该文件。如果您考虑跟踪的文件是否在索引中,则只要在索引中添加或删除文件就会跟踪该文件。

以下是您在HEAD中查看当前正在跟踪的所有文件的方法 git ls-tree HEAD^{tree} -r

如果您认为跟踪需要在索引中,您可以查看跟踪文件 git ls-files