Контроль версий файлов точек с помощью машинно-специфичных наборов изменений
Я храню точечные файлы в git-репо, однако у меня есть другой набор локальных изменений для .gitconfig
(который находится под управлением версией) - это может быть другая среда (autocrlf true) или другое имя пользователя.
Прямо сейчас каждый раз, когда я проверяю репо, я иду за:
git stash save && git pull && git stash apply
Что не кажется мне лучшей практикой. Как мне использовать разные наборы локальных изменений на разных машинах? Какой самый чистый и самый явный способ? Или я вообще решаю не ту проблему?
1 ответ
Вы можете разделить специфичные для хоста настройки в неотслеживаемый файл. include
заявление доступно в git>=1.7.10.
что-то вроде следующего может сделать свое дело:
[include]
path = ~/.gitconfig.local
я думаю, что было бы действительно изящно, было бы что-то вроде:
[include]
path = ~/.gitconfig.${HOSTNAME}.local
а затем отслеживать оба .gitconfig.foo.local
а также .gitconfig.bar.local
в хранилище, но первый get используется на хосте foo
а последний на канале bar
, к сожалению, расширение-переменная в настоящее время не поддерживается.
в качестве альтернативы вы можете установить переменную среды GIT_CONFIG на системное значение в вашем .bash_profile
/.profile
/.bashrc
наконец, GIT использует ${prefix}/etc/gitconfig
для конфигурации всего хоста, вероятно, вы можете использовать это для конфигурации всего хоста.