我在结帐期间使用过滤器来破坏文件,如此处所述。现在的问题是过滤器定义只存储在我的本地配置文件中:
$ cat .git/config .... [filter "dater"] smudge = /home/.../expand_date clean = perl -pe \"s/\\\\\\$Date[^\\\\\\$]*\\\\\\$/\\\\\\$Date\\\\\\$/\"
如果我的同事想从这个Date扩展中受益,他们需要复制我的过滤器定义。如果我改变它,我需要通知他们,等等。
Date
那么我可以将这个过滤器定义部分存储.git/config在存储库中并让 git 使用它吗?
.git/config
有 3 个受支持的.gitconfig文件范围:--system, --global, --local. 您还可以创建自定义配置文件,并将其包含在受支持的文件之一中。
.gitconfig
--system, --global, --local
为您的需求定制——是正确的选择。与其编写过滤器,.git/config不如将其保存在.gitconfig存储库根目录中的文件中:
your-repo/ │ ├── .git/ │ ├── config │ ├── .gitconfig │
使用您的过滤器创建.gitconfig并提交更改。然后您的同事将始终保持更新——但他们必须手动将其包含在内。单独通过 git自动包含您的自定义配置文件是不可能的,因为它会产生安全漏洞。
要将此配置应用于单个存储库,每个用户都需要在 中运行以下命令your-repo/:
your-repo/
git config --local include.path ../.gitconfig
参考:https ://git-scm.com/docs/git-config#_includes
注意不要将个人数据存储在自定义.gitconfig中,例如user.*,将它们保存在您的全局.gitconfig中。
user.*