“T”在“git status”中的含义是什么? (它不在手册页中)

时间:2012-01-01 00:16:35

标签: git

当我输入git status时,我看到了:

T /path/to/file...
M /path/to/otherfile...

T git status究竟是什么意思?

我试过man git-status(我认为应该在那里,但不是)。

3 个答案:

答案 0 :(得分:94)

这意味着文件的类型已更改。例如,成为常规文件的符号链接。

据我所知,这仅适用于符号链接,子模块和常规文件

修改
要求提供此信息的来源。虽然这只是我头脑中的信息,但我能够在互联网上找到一些参考资料。最突出的一个是a git changelog提到“T”作为类型更改而“D”作为删除。

编辑2 (更新此内容,因为这是迄今为止我的最高评级答案)
正如@PhilipOakley指出的那样,man git-diff-files确实显示了这些信息。

  

可能的状态字母是:

     
      
  • A:添加文件
  •   
  • C:将文件复制到新文件
  •   
  • D:删除文件
  •   
  • M:修改文件的内容或模式
  •   
  • R:重命名文件
  •   
  • T:更改文件类型
  •   
  • U:文件已取消合并(您必须先完成合并才能提交)
  •   
  • X:“未知”更改类型(最有可能是错误,请报告)
  •   

正如@Mat指出的那样,它也在diff.h,第289行:

#define DIFF_STATUS_TYPE_CHANGED    'T'

wt-status.c,第282行:

case DIFF_STATUS_TYPE_CHANGED:
    status_printf_more(s, c, _("typechange: %s"), one);
    break;

答案 1 :(得分:9)

代码字母列在git-diff-files选项下的git-diff-index--diff-filter中。它们包括git-status下未列出的不常见的那些。

  

他们的类型(即常规文件,符号链接,子模块......)发生了变化( T ),

来自git help diff-files msysgit版本1.7.8-preview20111206

答案 2 :(得分:0)

如果您发现存储库中的二进制文件已更改,但不确定原因,并且看到 typechange 出现 - 这可能意味着文件的模式(即 chmod)已更改。< /p>

我最近弹出了这个,即使在恢复到之前的提交之后,也不是很明显发生了什么变化。只有在创建一个分支,并向其添加恢复的提交时,我才看到一条显示模式已更改的消息:

<块引用>

模式改变 100755 => 120000