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