Was ich (mit den gleichen Zielen) tue, ist, meine Konfigurationsdateien in ein Unterverzeichnis zu legen ~/lib
und symbolische Links in meinem Home-Verzeichnis zu haben, z .emacs -> lib/emacs/dot.emacs
. Ich behalte nur Konfigurationsdateien, die ich explizit geschrieben habe, unter Versionskontrolle. Mein Ausgangsverzeichnis enthält viele automatisch erstellte Punktedateien, die nicht der Versionskontrolle unterliegen. Somit ~/lib
ist unter Versionskontrolle, und mein Home-Verzeichnis ist nicht.
Ich habe ein Skript, das die symbolischen Links aus den Dateien unter erstellt ~/lib
. Wenn ich ein Konto auf einem neuen Computer erstelle, fülle ich es auf, indem ich ~/lib
dieses Skript auschecke und ausführe .
Meine Erfahrung ist mit CVS, nicht Git, also ist es nicht 100% übertragbar. Einer der Gründe, warum ich ~/.cvsignore
mein Homeverzeichnis nicht direkt unter CVS gestellt habe, ist, dass dies für alle meine CVS-Prüfungen gilt und nicht nur für mein Homeverzeichnis. Git hat dieses Problem nicht. Der Nachteil dieses Ansatzes gegenüber der Versionskontrolle des Basisverzeichnisses besteht darin, dass Sie nicht git status
zwischen einer Datei, die Sie explizit ignorieren möchten (die in der Ignorierdatei aufgeführt und daher nicht angezeigt wird) und einer Datei unterscheiden können Datei, zu der Sie keine Meinung haben (die mit einem angezeigt würde ?
).
Einige Dateien müssen auf verschiedenen Computern unterschiedlich sein. Ich lege sie in ein Verzeichnis mit dem Namen ~/Local/SITENAME/lib
und erstelle entweder symbolische Links für sie oder (für Dateiformate, die dies unterstützen) habe eine include-Direktive in der Datei unter ~/lib
. Ich habe auch einen symbolischen Link ~/Here -> ~/Local/SITENAME
. Da git im Gegensatz zu CVS zumeist ähnliche, aber nicht identische Repositorys unterstützt, gibt es möglicherweise eine bessere Möglichkeit, maschinenspezifische Dateien zu verwalten. Einige meiner Punktedateien sind in der Tat keine symbolischen Links, sondern werden automatisch aus Inhalten unter ~/lib
und generiert ~/Here
.