找到包含特定文件的所有提交非常简单。
git log -- .\Database\Tables\sometable.sql
但是是否有一种简单的方法来查找一个文件类型的所有提交(递归到子目录下?)还是我需要编写一个脚本来完成这个任务?(从概念上讲...)
git log -- .\Database\*.sql --recursive
看起来,也许你只需要转义*
,这样它就不会被命令行扩展。 你似乎正在使用Windows,但我是在Linux上测试的:
git init
mkdir -p blue/red/green
touch blue/red/green/colors
git add blue/red/green/colors
git commit -m "colors and dirs"
touch blackAndWhite
git add blackAndWhite
git commit -m 'b&w'
git log -- \*ors
git log
的结果如下:commit 8fdb718b5b616dd495c00eb7a6d123c33f7707e5
Author: <snipped>
Date: Sun Oct 14 19:49:43 2012 -0400
colors and dirs
关于 Windows 中 *
的转义问题......或许可以将其放在单引号或双引号中?如果我有什么想法,我会添加上去的。
我想查看存储库中所有用户按类型贡献的情况。我找到了一个能够做到这一点的 Ruby 包,git fame
(此处)。如果您键入 git fame . --by-type
,它将输出类似于以下内容:
\
作为路径分隔符只是一个小错误?或者你使用的Windows Git客户端与我的不同? - altendky*
,使其不会被扩展,那么它也应该可以在那里正常工作。我注意到,如果通配符在当前目录(Linux bash或Git bash)中找不到匹配项,则它们会被传递给git log
并进行处理。只有当通配符确实匹配某些内容时,才真正需要进行转义。 - altendky