How to store a git config as part of the repository?
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
.
You can not use .gitconfig
file in a git repository by default, but you can link to it so the git config will be versioned.
You can link to it like that:
[include]
path = ../.gitconfig
I have created a simple script gitconfig.sh
which do it for you (much faster than copy) + simple .gitconfig
file so if you want, take a look to this repo https://github.com/HoBi/dotfiles.
EDIT: I have deleted the file, but you can find it here https://github.com/tenhobi/dotfiles/blob/7e4376c006c508370b82bc7bd37173fab51dbd01/git/.gitconfig.sh