首页 > 解决方案 > %f 在 git clean/smudge 过滤器中代表什么

问题描述

在我的~/.gitconfig文件中,我看到有以下 lfs 过滤器:

[filter "lfs"]
        clean = git-lfs clean -- %f
        smudge = git-lfs smudge -- %f
        process = git-lfs filter-process
        required = true

问题%flfs 过滤器中代表什么?我的理解是它代表文件路径,但我不确定它代表什么文件路径。

标签: gitgithubgit-lfs

解决方案


.gitattributesfilter”部分中,它表示为:

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

[filter "p4"]
  clean = git-p4-filter --clean %f
  smudge = git-p4-filter --smudge %f

请注意,“ %f”是正在处理的路径的名称。
根据被过滤的版本,磁盘上的相应文件可能不存在,或者可能有不同的内容。

因此,smudge命令clean不应尝试访问磁盘上的文件,而应仅作为标准输入上提供给它们的内容的过滤器。


推荐阅读