Что мне делать ? (С теми же целями), чтобы поместить мои файлы конфигурации в подкаталоге ~/libи имеют символические ссылки в моей домашней директории, например, .emacs -> lib/emacs/dot.emacs. Я храню только файлы конфигурации, которые я написал явно, под контролем версий; Мой домашний каталог содержит множество автоматически созданных точечных файлов, которые не находятся под контролем версий. Таким образом, ~/libнаходится под контролем версий, а мой домашний каталог - нет.
У меня есть скрипт, который создает символические ссылки из файлов в ~/lib. Когда я создаю учетную запись на новом компьютере, я заполняю ее, проверяя ~/libи выполняя этот скрипт.
Мой опыт работы с CVS, а не с git, так что это не на 100%. Одна из причин, по которой я не поместил свой домашний каталог непосредственно в CVS, заключается в том, что ~/.cvsignoreэто относится ко всем моим проверкам CVS, а не только к моему домашнему каталогу; У мерзости нет этой проблемы. Недостатком этого подхода по сравнению с наличием домашнего каталога под управлением версиями является то, что вы не можете использовать git statusдля разграничения файла, который вы явно решили игнорировать (который будет указан в файле игнорирования, поэтому не отображается), и файл, о котором у вас нет мнения (который будет отображаться с ?).
Некоторые файлы должны быть разными на разных машинах. Я помещаю их в каталог с именем ~/Local/SITENAME/libи создаю для них также символические ссылки, или (для форматов файлов, которые его поддерживают) в файле есть директива include ~/lib. У меня также есть символическая ссылка ~/Here -> ~/Local/SITENAME. Поскольку git, в отличие от CVS, предназначен для поддержки, в основном, аналогичных, но не идентичных репозиториев, может существовать лучший способ управления файлами, специфичными для компьютера. Некоторые из моих точечных файлов на самом деле не являются символическими ссылками, но автоматически генерируются из содержимого в ~/libи ~/Here.