3

我正在创建一个涂抹/清洁 git 过滤器。过滤器需要知道被过滤文件的名称,以便它可以执行一些外部操作,其结果将由过滤器输出。

由于过滤器是从标准输入读取并写入标准输出,有没有办法让文件名被过滤?

例如我想:

git blame $0  | cut -d " " -f 4-6 | sort | uniq | sort | tail -1

找出此文件中最后一次更改的日期或:

git grep -I --name-only -e "" -- $0

测试文件是否为二进制文件。

但是,我需要知道我应该使用什么作为“ $0”来从过滤器内部进行这项工作?

4

1 回答 1

7

gitattributes 手册

过滤器命令行上的序列“%f”被过滤器正在处理的文件的名称替换。过滤器可能会在关键字替换中使用它。例如:

[过滤“p4”]

   clean = git-p4-filter --clean %f
   smudge = git-p4-filter --smudge %f

也许%f是你想要的。

于 2013-06-09T02:37:41.720 回答