有时会有一些已更改的文件以及一些新的,已删除和/或重命名的文件.在做git diff或者git-log我想省略它们时,我可以更好地发现修改.
实际上,列出新文件和已删除文件的名称是最好的.对于"旧"重命名为"新"我想选择性地区分"旧"和"新".
CB *_*ley 199
该--diff-filter选项适用于diff和log.
我使用--diff-filter=M很多将diff输出限制为仅内容修改.
要检测重命名和副本并在diff输出中使用它们,可以分别使用-M和和选项-C一起使用.RC--diff-filter
Tee*_*ker 50
Run Code Online (Sandbox Code Playgroud)--diff-filter=[(A|C|D|M|R|T|U|X|B)…?[*]]仅选择已添加(A),复制(C),删除(D),修改(M),重命名(R)的文件,其类型(即常规文件,符号链接,子模块,...)已更改(T),是未合并(U),未知(X),或已配对破碎(B).可以使用过滤器字符的任何组合(包括无).
当*(全部或全部)添加到组合中时,如果有任何文件与比较中的其他条件匹配,则选择所有路径; 如果没有与其他条件匹配的文件,则不会选择任何内容.
此外,这些大写字母可以降级为排除.例如--diff-filter = ad排除添加和删除的路径.
示例:仅显示添加,更改,修改的文件,不包括已删除的文件:
git diff --diff-filter=ACM
Run Code Online (Sandbox Code Playgroud)
此外,这些大写字母可以小写以排除。
例如,--diff-filter=ad排除添加和删除的路径。
在您的情况下,git diff --diff-filter=ad可以,但请确保不要在同一过滤器中使用小写和大写字母,除非您有 Git 2.36(2022 年第 2 季度)。
现在可以正确解析“ git diff --diff-filter=aR” ( man ) 。
请参阅Johannes Schindelin ( )的提交 75408ca、提交 4d4d4ea、提交 d843e31(2022 年 1 月 28 日)。(由Junio C Hamano 合并 -- --提交9a16099,2022年 2 月 16 日)dscho
gitster
diff-filter:寻找负位时要更加小心签署人:约翰内斯·辛德林
该
--diff-filter=<bits>选项允许按某些条件过滤差异,例如R仅显示重命名的文件。
它还支持通过小写字母否定过滤器,即
r显示除重命名文件之外的所有内容。然而,当试图弄清楚( man )是否应该在所有 diff-filters 打开的情况下开始时,代码有点过于热心,因为用户提供了一个小写字母:如果参数以大写字母开头,我们不能首先打开所有位。
git diff--diff-filter更糟糕的是,可以在多个单独的选项中指定 diff 过滤器,例如
--diff-filter=AM [...] --diff-filter=m。让我们独立累积包含/排除过滤器,并且在完全解析选项后仅处理“仅指定排除过滤器”的特殊情况。
| 归档时间: |
|
| 查看次数: |
23253 次 |
| 最近记录: |