Armazenando git config como parte do repository

Estou usando filtros para manipular arquivos durante a finalização, como descrito aqui . Agora o problema é que a definição do filtro é armazenada apenas no meu arquivo de configuração local:

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

Se meus colegas de trabalho quiserem se beneficiar dessa expansão de Date , eles precisarão copiar minha definição de filtro. E se eu mudar, eu preciso notificá-los, etc.

Então eu posso armazenar essa parte de definição de filtro de .git/config no repository e fazer o git usá-la?

Existem 3 escopos suportados do arquivo .gitconfig : --system, --global, --local . Você também pode criar um arquivo de configuração personalizado e incluí-lo em um dos arquivos suportados.

Para suas necessidades personalizadas – é a escolha certa. Em vez de escrever seu filtro em .git/config você deve salvá-lo no arquivo .gitconfig em sua raiz de repository:

 your-repo/ │ ├── .git/ │ ├── config │ ├── .gitconfig │ 

Crie o .gitconfig com seu filtro e confirme as mudanças. Então seus colegas sempre o manterão atualizado – mas terão que incluí-lo manualmente. Não é possível include automaticamente seu arquivo de configuração personalizado apenas por meio do git, porque ele cria uma vulnerabilidade de segurança.

Para aplicar essa configuração a um único repository, cada usuário precisará executar o seguinte comando em your-repo/ :

 git config --local include.path ../.gitconfig 

Tenha cuidado para não armazenar dados pessoais no personalizado .gitconfig , como user.* , Mantenha-os em seu global .gitconfig .

Você não pode usar o arquivo .gitconfig em um repository git por padrão, mas pode vinculá-lo para que a configuração do git seja versionada.

Você pode vinculá-lo assim:

 [include] path = ../.gitconfig 

Eu criei um script simples gitconfig.sh que faz isso para você (muito mais rápido do que copiar) + simples arquivo .gitconfig isso, se você quiser, dê uma olhada neste repo https://github.com/HoBi/dotfiles .


EDIT : eu deletei o arquivo, mas você pode encontrá-lo aqui https://github.com/tenhobi/dotfiles/blob/7e4376c006c508370b82bc7bd37173fab51dbd01/git/.gitconfig.sh