Контроль версий файлов точек с помощью машинно-специфичных наборов изменений

Я храню точечные файлы в 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 для конфигурации всего хоста, вероятно, вы можете использовать это для конфигурации всего хоста.

Другие вопросы по тегам