我正在创建一个涂抹/干净的git过滤器.过滤器需要知道要过滤的文件的名称,以便它可以执行一些外部操作,其结果将由过滤器输出.
由于过滤器是从stdin读取并写入stdout,有没有办法让文件名被过滤?
例如,我想:
git blame $0 | cut -d " " -f 4-6 | sort | uniq | sort | tail -1
Run Code Online (Sandbox Code Playgroud)
找出此文件中最后一次更改的日期或:
git grep -I --name-only -e "" -- $0
Run Code Online (Sandbox Code Playgroud)
测试文件是否为二进制文件.
但是,我需要知道我应该使用什么作为" $0"从过滤器内部进行此操作?
从gitattributes 手册
过滤器命令行上的序列"%f"将替换为过滤器正在处理的文件的名称.过滤器可能会在关键字替换中使用它.例如:
[过滤器"p4"]
Run Code Online (Sandbox Code Playgroud)clean = git-p4-filter --clean %f smudge = git-p4-filter --smudge %f
也许%f就是你想要的.
| 归档时间: |
|
| 查看次数: |
1043 次 |
| 最近记录: |