有没有办法限制git diff
更改文件?
我想查看两次提交之间的差异,但排除其中一个或另一个中不存在的路径(添加/删除)。下面的 Perl 一行行说明了我想要的大部分内容:
git diff master.. | perl -lnwe 'print unless /^(new|deleted) file/../^diff/ and not /^diff/'
但这留下了diff --git a/path b/path
新文件或已删除文件的行。另外,如果我不必解析(例如,如果任何块包含任何匹配 /^diff/ 的内容也会失败),那就更好了。
我尝试的另一种选择是:
git diff --name-status (args) | perl -lnwe 'print if s/^M\s+//' | xargs git diff (args) --
它的输出更好,但仍然感觉很黑客。
您正在寻找--diff-filter=M
仅显示文件M在两个分支之间进行修改。
From man git-diff
--diff-filter=[ACDMRTUXB*]
仅选择以下文件
-
A
Added
-
C
Copied
-
D
Deleted
-
M
修改的
-
R
Renamed
-
T
他们的类型(模式)改变了
-
U
未合并
-
X
Unknown
-
B
他们的配对已经破裂
-
*
全有或全无
可以使用过滤字符的任意组合。
When *
(全部或无)添加到组合中,所有路径都
如果存在符合其他条件的文件,则选择
比较;如果没有与其他条件匹配的文件,则没有任何内容
被选中。
此外,这些大写字母可以小写以排除。例如。--diff-filter=ad
排除添加和删除的路径。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)