Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git日志-如何过滤(排除)出现在“Git日志”中的文件?(git pathspec magic)_Git_Git Commit_Git Log - Fatal编程技术网

Git日志-如何过滤(排除)出现在“Git日志”中的文件?(git pathspec magic)

Git日志-如何过滤(排除)出现在“Git日志”中的文件?(git pathspec magic),git,git-commit,git-log,Git,Git Commit,Git Log,我需要使用git log命令来创建一个报告,报告两个日期之间通过提交添加和删除的行数 目前我使用的命令是: git log --since="2015-12-01" --until="2015-12-31" --shortstat 但是我需要在这个过程中过滤一些文件。 这些文件是自动生成的,我们不想看到它们的影响。通过它们的名称可以很容易地识别它们。*。生成。* 我选择使用git log命令,我可以得到我需要的报告,但我不知道如何过滤那些不需要的文件 ,我已经读了好几遍了,但是我没有看到任何关

我需要使用
git log
命令来创建一个报告,报告两个日期之间通过提交添加和删除的行数

目前我使用的命令是:

git log --since="2015-12-01" --until="2015-12-31" --shortstat
但是我需要在这个过程中过滤一些文件。 这些文件是自动生成的,我们不想看到它们的影响。通过它们的名称可以很容易地识别它们。
*。生成。*

我选择使用
git log
命令,我可以得到我需要的报告,但我不知道如何过滤那些不需要的文件

,我已经读了好几遍了,但是我没有看到任何关于根据文件名过滤文件的内容。这是可能的,还是我必须找到另一个命令才能找到commit添加/删除的行数?

有关如何执行此操作的“秘密”称为:


pathspec magic

您只需使用此格式(在git version>1.9中引入):

#使用此语法,注意所有参数和语法
#Unix:
吉特日志


演示:
git日志--stat
(检查最后一次提交)

与文件管理器相同的是,您可以看到结果中只有一个文件,而不是2个

git日志--stat-p--.:(不包括)*dal.js*'

为什么要对生成的文件进行版本控制?!我想说这是实际问题。假设这是另一个我没有权力的团队的另一个问题:)将通过
grep-vF'.generated.
do?git log命令不会枚举所有文件。您只需在一个提交中获得修改(添加或删除)的文件数这在手册页中有记录(显然几乎没有其他地方)。同意,这就是我添加它的原因+文档:-)。这不是一个简单的问题,您需要非常了解git才能回答它。:-)我知道,这是引用!在windows上,您需要双引号:)@code向导:在注释中键入
git log-p
-p
代表修补程序,在您的示例中不需要,也不符合OP的需要。它为每个列出的提交显示详细的差异。谢谢!另外,很高兴知道您可以添加多个,例如,
git log-pv3.5.0~…master--.:(排除)warn.lock':(排除)README.md'
# Use this syntax, pay attention to all the parameters and the syntax

# Unix: 
git log <any required flags> -p  -- . ':(exclude)*.generated.*'

# Windows (double quote) [ Thank to @Cyril Gandon for noticing it]:
# (double quote) should work on all OS as well
git log <any required flags> -p  -- . ":(exclude)*.generated.*"