Що мені робити ? (З тими ж цілями), щоб помістити мої файли конфігурації в підкаталозі ~/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.