Cyr*_*don 7 git git-log git-commit
我需要使用该git-log命令在两个日期之间平均创建一个提交添加和删除行数的报告.
目前我使用的命令是:
git log --since="2015-12-01" --until="2015-12-31" --shortstat
Run Code Online (Sandbox Code Playgroud)
但我需要在过程中过滤一些文件.Thoses文件是自动生成的,我们不希望看到它们的影响.他们很容易通过他们的名字来识别*.generated.*
我选择使用该git-log命令,我能够获得我需要的报告,除了我没有看到如何过滤这些不需要的文件.
文档很大,我已经多次阅读了,但我没有看到任何基于名称过滤文件的内容.这是可能的,还是我必须找到另一个命令来查找提交添加/删除的行数?
Cod*_*ard 12
关于如何做到这一点的"秘密"称为:
pathspec magic你可以简单地使用这种格式(在git版本> 1.9中引入):
# 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.*"
Run Code Online (Sandbox Code Playgroud)
调用此语法pathspec magic.
使用此语法,您可以"告诉"git要排除哪些文件扩展名.在你的情况下,它是*.generated.*
http://git-scm.com/docs/gitglossary.html:
以冒号开头的pathspec
:具有特殊含义.在简短形式中,前导冒号
:后跟零个或多个magic signature字母(可选地由另一个冒号:)终止,剩余部分是与路径匹配的模式.它
magic signature由ASCII符号组成,既不是字母数字,也不是字母,正则表达式,也不是冒号.magic signature如果模式以不属于"魔术签名"符号集且不是冒号的字符开头,则可以省略终止的可选冒号.在长形式中,前导冒号
:后面是一个左括号(,一个逗号分隔的零或多个列表magic words,以及一个紧括的括号),余数是与路径匹配的模式.
注意
在旧版本中(该功能是在git v1.9中引入的,并且该bug已在git 1.9.5中修复),有一个错误已得到修复.
https://github.com/git/git/commit/ed22b4173bd8d6dbce6236480bd30a63dd54834e
git log --stat和文件管理器一样 - 你可以看到结果中只有一个文件而不是2个
git log --stat -p -- . ':(exclude)*dal.js*'| 归档时间: |
|
| 查看次数: |
2446 次 |
| 最近记录: |