git diff --name-status:R100是什么意思?

Ame*_*ina 8 git

例如,当我这样做时,git diff master --name-status我看到一些带有R100前缀的行。

到底是R100什么意思?


我认为这 R意味着“感动”。我将在文档中找到以下内容,但本文中没有任何内容100或数字本身。

--name-status 仅显示更改文件的名称和状态。有关状态字母的含义,请参见--diff-filter选项的描述。

然后

--diff-filter=[(A|C|D|M|R|T|U|X|B)…?[*]] 仅选择已更改(T)的已添加(A),已复制(C),已删除(D),已修改(M),已重命名(R),其类型(即常规文件,符号链接,子模块等)的文件,是未合并(U),是未知(X)或配对已损坏(B)。可以使用过滤器字符的任何组合(包括无过滤器字符)。将*(全或无)添加到组合中时,如果在比较中有任何文件与其他条件匹配,则选择所有路径;如果没有符合其他条件的文件,则不会选择任何内容。

同样,这些大写字母可以小写以排除。例如--diff-filter = ad排除添加和删除的路径。

请注意,并非所有差异都可以具有所有类型。例如,从索引到工作树的差异永远不能具有添加条目(因为差异中包含的路径集受索引中的内容限制)。同样,如果禁用了对这些类型的检测,则复制和重命名的条目也不会出现。

Tim*_*sen 15

文件git status下“更改跟踪条目”似乎解释什么R100手段:

<X><score> 重命名或复制分数(表示移动或复制的源与目标之间的相似性百分比)。例如“ R100”或“ C75”。

因此,将其与您上面引用的内容放在一起,您所看到的具有R100状态的文件意味着它们已被移动,并且Git找到了该文件与其他一些先前命名的文件之间的100%匹配。

这是一个指向 @torek的好答案的链接,该答案描述了Git如何跟踪内容的物理原理。

  • 谢谢。我猜这是在`git status` 下描述的,但实际上不在`diff` 下(尽管我猜当然`status` 可能会调用`diff` ..) (2认同)