Хранение git config как часть репозитория
Я использую фильтры для искажения файлов во время оформления заказа, как описано здесь. Теперь проблема в том, что определение фильтра хранится только в моем локальном файле конфигурации:
$ cat .git/config
....
[filter "dater"]
smudge = /home/.../expand_date
clean = perl -pe \"s/\\\\\\$Date[^\\\\\\$]*\\\\\\$/\\\\\\$Date\\\\\\$/\"
Если мои коллеги хотят извлечь выгоду из этого Date
Расширение, они должны скопировать мое определение фильтра. И если я изменю это, я должен уведомить их, и т.д..
Так могу ли я сохранить эту часть определения фильтра .git/config
в репозитории и заставить его использовать git?
2 ответа
Есть 3 поддерживаемых области .gitconfig
файл: --system, --global, --local
, Вы также можете создать собственный файл конфигурации и включить его в один из поддерживаемых файлов.
Для ваших нужд обычай - это правильный выбор. Вместо того, чтобы писать свой фильтр в .git/config
Вы должны сохранить его в .gitconfig
файл в корне вашего репозитория:
your-repo/
│
├── .git/
│ ├── config
│
├── .gitconfig
│
Создать .gitconfig
с вашим фильтром и зафиксируйте изменения. Тогда ваши коллеги всегда будут обновлять его, но им придется включать его вручную. Невозможно автоматически включить ваш пользовательский файл конфигурации только через git, поскольку это создает уязвимость безопасности.
Чтобы применить эту конфигурацию для одного репозитория, каждому пользователю нужно будет выполнить следующую команду в your-repo/
:
git config --local include.path ../.gitconfig
Будьте осторожны, чтобы не хранить личные данные в пользовательских .gitconfig
, лайк user.*
держите тех в своем глобальном .gitconfig
,
Вы не можете использовать .gitconfig
файл в репозитории git по умолчанию, но вы можете связать его с версией git config.
Вы можете сделать ссылку на это так:
[include]
path = ../.gitconfig
Я создал простой скрипт gitconfig.sh
которые делают это для вас (гораздо быстрее, чем копировать) + просто .gitconfig
файл, так что если вы хотите, посмотрите на этот репозиторий https://github.com/HoBi/dotfiles.
РЕДАКТИРОВАТЬ: я удалил файл, но вы можете найти его здесь https://github.com/tenhobi/dotfiles/blob/7e4376c006c508370b82bc7bd37173fab51dbd01/git/.gitconfig.sh