忽略git日志中的文件-p

忽略git日志中的文件-p,git,git-log,Git,Git Log,我正试图总结我在一个项目上的工作。问题是我不想在git log--patch的输出中包含测试文件 这些文件位于一个名为mtest的目录中;但是,该文件夹还包含我确实希望显示的测试套件代码。我要排除的测试文件具有扩展名mscx或xml,因此我希望过滤器基于此工作 我已经看过了,但这看起来像是排除了修改文件的提交,而不是简单地排除文件 有办法做到这一点吗 我试过Jubobs的答案,它似乎奏效了,但令人惊讶的是,即使打开了过滤器,也有2个文件出现了 我用这个小仓库复制了这个: mkdir test c

我正试图总结我在一个项目上的工作。问题是我不想在
git log--patch
的输出中包含测试文件

这些文件位于一个名为
mtest
的目录中;但是,该文件夹还包含我确实希望显示的测试套件代码。我要排除的测试文件具有扩展名
mscx
xml
,因此我希望过滤器基于此工作

我已经看过了,但这看起来像是排除了修改文件的提交,而不是简单地排除文件

有办法做到这一点吗

我试过Jubobs的答案,它似乎奏效了,但令人惊讶的是,即使打开了过滤器,也有2个文件出现了

我用这个小仓库复制了这个:

mkdir test
cd test
git init
echo 'readme' > README
git add .
git commit -m "Initial commit"

mkdir test2
cd test2
echo 't1' > test1.cpp
echo 't2' > test2.xml
git add .
git commit -m "c2"

echo 't3' > test3.cpp
echo 't4' > test4.xml
git add .
git commit -m "c3"
我注意到在创建目录时文件不会被过滤。 我尝试了以下命令:

git log --patch -- . ":(exclude)**/*.xml"
这导致两个xml文件都要包含

git log --patch -- . ":(exclude)*.xml"

这令人惊讶地过滤掉了
test4.xml
,但没有过滤掉
test2.xml

我不知道您正在/正在使用哪个版本的Git,但您报告的问题似乎已在Git 1.9.5中修复(有关错误修复的更多详细信息,请参阅)。下面的命令

git log --patch -- . ":(exclude)*.xml"
在您的玩具示例中实现了您想要的功能:正如您在下面看到的,所有
*.xml
文件都会根据需要过滤掉

$mkdir测试
$cd测试
$git init
已在/Users/jubobs/Desktop/test/.Git中初始化空Git存储库/
$echo'readme'>readme
$git add。
$git commit-m“初始提交”
[主(根提交)ad6cc73]初始提交
1个文件已更改,1个插入(+)
创建模式100644自述文件
$mkdir test2
$cd测试2
$echo't1'>test1.cpp
$echo't2'>test2.xml
$git add。
$git提交-m“c2”
[master 8d733a2]c2
2个文件已更改,2个插入(+)
创建模式100644 test2/test1.cpp
创建模式100644 test2/test2.xml
$echo't3'>test3.cpp
$echo't4'>test4.xml
$git add。
$git提交-m“c3”
[master 3e8a3f6]c3
2个文件已更改,2个插入(+)
创建模式100644 test2/test3.cpp
创建模式100644 test2/test4.xml
$git日志--修补程序--。“:(排除)*.xml”
提交3e8a3f6c627576e8f7d1863b92d4f631ae309417
作者:XXXXXXXXXXXXXXXXXXXXXXXXX
日期:12月27日星期六00:19:56 2014+0100
c3
diff——git a/test2/test3.cpp b/test2/test3.cpp
新文件模式100644
索引0000000..6d6ea65
---/dev/null
+++b/test2/test3.cpp
@@ -0,0 +1 @@
+t3
提交8d733a27a0e2c9f4c71e7b64742107255035d6cd
作者:XXXXXXXXXXXXXXXXXXXXXXXXX
日期:2014年12月27日星期六00:19:33+0100
c2
diff——git a/test2/test1.cpp b/test2/test1.cpp
新文件模式100644
索引0000000..795ea43
---/dev/null
+++b/test2/test1.cpp
@@ -0,0 +1 @@
+t1

伟大答案可能重复!对于像我这样正在寻找一种方法来读取节点项目的“git log-p”,其中package-lock.json使日志不可读,下面是我的日志别名:
alias log='git log-p--。“:(排除)包锁.json””