有什么办法可以做类似的事情git log <path>,但是可以使用正则表达式代替路径吗?我想搜索包含文件名与给定模式匹配的文件的提交...
……而我们正在讨论:是否还有一种方法仅对匹配给定模式的文件名执行git status/ git diff?
提前致谢!
编辑:如果有任何方法,我将非常棒,它也适用于Git v1.7.1。
就纯git解决方案而言,我知道匹配特定文件模式的唯一选择是使用glob。
git log -- '*.json'
Run Code Online (Sandbox Code Playgroud)
将为您提供所有包含文件更改的json文件。可以做同样的事情git status。
另一方面,在diff或commit消息中搜索正则表达式非常容易。git log提供了一个--grep在提交消息中搜索匹配-S项的选项,以及一个搜索字符串的选项。
对于简单的模式,您可以尝试,例如:
find . -name "*.c" | xargs git log
Run Code Online (Sandbox Code Playgroud)
对于完整的正则表达式,您可以使用:
find . | grep "REGEX" | xargs git log
Run Code Online (Sandbox Code Playgroud)
如果您需要将以前删除的文件包含在输出中,您可以使用
git log --all --pretty=format: --name-only --diff-filter=A | sort -u | grep "REGEX" | xargs git log --
Run Code Online (Sandbox Code Playgroud)
上述命令的第一部分,它查找 git 中曾经存在的所有文件,是从另一个问题的答案中提取出来的。
| 归档时间: |
|
| 查看次数: |
1442 次 |
| 最近记录: |