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