Die kurze Antwort auf Ihre Frage lautet Ja .
Ich würde ohne zu zögern Git (oder eine andere Versionskontrollsoftware) empfehlen, um den Überblick über die Konfigurationsdateien zu behalten. Seitdem bin ich produktiver (insbesondere beim Konfigurieren neuer Installationen) und habe mehr Vertrauen in meine Konfigurationsdateien. Mit Versionskontrolle habe ich eine Aufzeichnung von welche Änderungen vorgenommen wurden, und die Festschreibungsmeldung gibt den Grund an, warum die Änderung vorgenommen wurde. Wenn eine Änderung unbeabsichtigte Nebenwirkungen hat, kann ich das Protokoll / den Verlauf leicht überprüfen, um festzustellen, welche Änderung die Auswirkungen verursacht hat.
Persönlich wäre ich vorsichtig, wenn ich alle Dateien im /
Stammverzeichnis verfolgen würde . Die Liste der zu ignorierenden Pfade kann umfangreich und unhandlich werden. Ich bevorzuge es, jede logische Gruppe von Dateien in einem eigenen Repository zu speichern.
Ich verwende Git manuell, um meine persönlichen Konfigurations- / Startdateien zu protokollieren, z. B. Vim-Konfiguration, Bash-Funktionen, Aliase usw. - ähnlich wie in aufgeführt So verfolgen Sie $ HOME mit git . Ich behalte jede Gruppe von Dateien in einem eigenen Repository und verwende symbolische Links zum Ausgangsverzeichnis.
Für System - Konfigurationsdateien, verwende ich Git mit etckeeper Spur von Dateien in meinem zu halten /etc
Verzeichnis.
Nachteile
Seien Sie vorsichtig, wenn die verfolgten Dateien feste Links enthalten . Wenn Git zum Auschecken von Dateien oder zum Ändern des Arbeitsbaums verwendet wird, werden die Verknüpfungen zwischen Dateien aufgehoben und diese anschließend neu erstellt . Siehe Git, Dotfiles und Hardlinks .
Etckeeper
Mit Etckeeper kann ein vollständiger Verlauf der an / etc. Vorgenommenen Änderungen geführt werden. Es werden Dateimetadaten nachverfolgt, die von Revisionskontrollsystemen normalerweise nicht unterstützt werden. Dies ist jedoch wichtig /etc
, z. B. für die Berechtigungen von /etc/shadow
.
Es lässt sich in Paketmanager wie apt und yum einbinden und führt (in der Standardkonfiguration) die Vor- und Nachinstallation durch, damit alle Änderungen /etc
nachverfolgt werden.
Wenn ein Paket installiert oder entfernt wird, werden alle nicht festgeschriebenen Änderungen in / etc vor der Paketoperation festgeschrieben, sodass zwei Festschreibungen erfolgen:
- "Speichern nicht festgeschriebener Änderungen in / etc vor dem Start"
- "Änderungen in / etc nach yum run vornehmen"
Ich habe es mit Debian- und Red Hat-basierten Distributionen verwendet und weiß, dass es die Arch-Paketverwaltung unterstützt. Ich kann nicht sagen, wie viel Automatisierung ein Gentoo-System hinzufügen würde, aber ein Paket ist dafür verfügbar .
Es unterstützt auch das Verschieben der Konfigurationsdateien in ein Remote-Repository
(das natürlich privat sein sollte).
Aufbau
Nach der Installation des Pakets müssen Sie es möglicherweise konfigurieren ( /etc/etckeeper/etckeeper.conf
), z. B. wird auf Ubuntu-Systemen das Standardversionskontrollsystem von Git auf Bazaar geändert. Sie können auch die täglichen automatischen Festschreibungen deaktivieren .
Tägliche Autocommits
Änderungen können automatisch von einem täglichen Cron-Job übernommen werden . Dies kann ärgerlich sein, da das Repository mit mehreren automatisierten Festschreibungsnachrichten überfüllt sein kann.
Ich kommentiere die entsprechende Zeile in /etc/etckeeper/etckeeper.conf
:
sed -i '/AVOID_DAILY_AUTOCOMMITS/s|^#* *||' /etc/etckeeper/etckeeper.conf
Ignoriere bestimmte Dateien
Bearbeiten /etc/.gitignore
, um alle Dateien anzugeben, die nicht verfolgt werden sollen.
Erster Lauf
Führen Sie nach der Konfiguration die folgenden Befehle aus:
sudo etckeeper init
sudo etckeeper commit "Initial commit"
Wenn Ihr aktuelles Verzeichnis ist etc
, können Sie reguläre git
Befehle ausführen, z.
sudo git status
sudo git log