Что мне делать ? (С теми же целями), чтобы поместить мои файлы конфигурации в подкаталоге ~/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
.