使用git查看与子目录中的特定文件扩展名相关的所有日志

时间:2015-04-16 04:09:23

标签: git git-log

我正在尝试查看存储库历史记录中的提交,但仅针对具有特定扩展名的文件。

如果这是目录结构:

$ tree
.
├── a.txt
├── b
└── subdir
    ├── c.txt
    └── d

这是完整的历史:

$ git log --name-only --oneline 
a166980 4
subdir/d
1a1eec6 3
subdir/c.txt
bc6a027 2
b
f8d4414 1
a.txt

如果我想查看扩展名为.txt的文件的日志:

$ git log --oneline *.txt
f8d4414 1

它仅返回当前目录中的文件,而不返回子目录中的文件。我想在当前目录中包含所有可能的子目录。

我也尝试过:

$ git log --oneline */*.txt
1a1eec6 3

$ git log --oneline *.txt */*.txt
1a1eec6 3
f8d4414 1

这适用于这种情况,但对于更一般的情况不适用。

$ git log --oneline HEAD -- *.txt
f8d4414 1

没有成功。

1 个答案:

答案 0 :(得分:12)

尝试:

git log --oneline -- '*.txt'

--用于表示仅跟随位置参数。并且'*.txt'在当前目录中搜索所有文件夹。

或者,您可以通过在子目录中开始搜索来限制结果,例如: -- 'sub/*.txt'