小编典典

如何将 git 配置存储为存储库的一部分?

all

我在结帐期间使用过滤器来破坏文件,如此所述。现在的问题是过滤器定义只存储在我的本地配置文件中:

$ cat .git/config
....
[filter "dater"]
        smudge = /home/.../expand_date
        clean = perl -pe \"s/\\\\\\$Date[^\\\\\\$]*\\\\\\$/\\\\\\$Date\\\\\\$/\"

如果我的同事想从这个Date扩展中受益,他们需要复制我的过滤器定义。如果我改变它,我需要通知他们,等等。

那么我可以将这个过滤器定义部分存储.git/config在存储库中并让 git 使用它吗?


阅读 78

收藏
2022-06-29

共1个答案

小编典典

有 3 个受支持的.gitconfig文件范围:--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

注意不要将个人数据存储在自定义.gitconfig中,例如user.*,将它们保存在您的全局.gitconfig中。

2022-06-29