How to store a git config as part of the repository?
git
Solution
There are 3 supported scopes of `.gitconfig` file: `--system, --global, --local`. You can also create a custom configuration file, and include it in one of the supported files.
For your needs custom - is the right choice. Instead of writing your filter in `.git/config` you should save it in `.gitconfig` file in your repository root:
your-repo/
│
├── .git/
│ ├── config
│
├── .gitconfig
│
Create the `.gitconfig` with your filter and commit the changes. Then your colleagues will always keep it updated -- but they will have to include it manually. It is not possible to automatically include your custom configuration file through git alone, because it creates a security vulnerability.
To apply this configuration for a single repository, each user will need to run the following command in `your-repo/`:
git config --local include.path ../.gitconfig
Reference: https://git-scm.com/docs/git-config#_includes
Be careful not to store personal data in the custom `.gitconfig`, like `user.*`, keep those in your global `.gitconfig`.
Problem
I'm using filters to mangle files during checkout like described here. Now the problem is that filter definition is only stored in my local configuration file: ``` $ cat .git/config .... [filter "dater"] smudge = /home/.../expand_date clean = perl -pe \"s/\\\\\\$Date[^\\\\\\$]*\\\\\\$/\\\\\\$Date\\\\\\$/\" ``` If my coworkers want to benefit from this `Date` expansion, they need to copy my filter definition. And if I change it, I need to notify them, etc.. So can I store this filter definition part of `.git/config` in repository and make git use it?