Einführung
Linux-Administratoren bearbeiten häufig Konfigurationsdateien. Git ist hierbei äußerst nützlich, da es genau aufzeichnet, was geändert wurde, wann es geändert wurde und warum. Selbst wenn kein vollständiger Infrastruktur-Workflow erforderlich ist, kann ein kleines Git-Repository dabei helfen, lokale Konfigurationsänderungen vor und nach einer Bearbeitung nachzuvollziehen.
In diesem Lab wirst du eine kleine Konfigurationsdatei namens app.conf im Verzeichnis /home/labex/project verwalten. Du wirst ein Git-Repository initialisieren, die lokale Identität des Autors konfigurieren, einen ersten Commit erstellen, die Datei bearbeiten, die Änderungen (Diff) überprüfen und einen zweiten Commit durchführen. Das Lab nutzt die Git-Historie als dauerhafte Aufzeichnung der Konfigurationsänderungen.
Überprüfung der Konfigurationsdatei
In diesem Schritt untersuchst du die Datei, die von Git verwaltet werden soll. Bevor du ein Repository erstellst, solltest du sicherstellen, welche Datei relevant ist und wie ihr aktueller Inhalt aussieht.
Wechsle in das LabEx-Projektverzeichnis.
cd /home/labex/project
Lasse dir die Konfigurationsdatei anzeigen. Die Option -l zeigt Metadaten wie Größe, Besitzer und Berechtigungen an.
ls -l app.conf
Lies den Inhalt der Datei. Diese Konfiguration verwendet einfache key=value-Zeilen, die bei Linux-Anwendungskonfigurationen üblich sind.
cat app.conf
Du solltest log_level=info sehen. Später wirst du nur diese Einstellung ändern, damit das Git-Diff übersichtlich bleibt.
Initialisierung eines lokalen Git-Repositorys
In diesem Schritt machst du /home/labex/project zu einem Git-Repository. Ein Git-Repository speichert die Historie in einem versteckten .git-Verzeichnis. Git benötigt außerdem einen Autorennamen und eine E-Mail-Adresse, bevor Commits erstellt werden können. In der Praxis wird dies oft global konfiguriert, aber in Labs ist es sicherer, die Identität nur für dieses spezifische Repository festzulegen.
Initialisiere das Repository. Die Option -b main erstellt den initialen Branch mit dem expliziten Namen main, wodurch eine Standard-Warnung von Git vermieden wird.
git init -b main
Lege die lokale Identität des Autors fest. Der Bereich --local speichert diese Werte nur in diesem Repository. Der dritte Befehl deaktiviert die farbige Git-Ausgabe innerhalb dieses Lab-Repositorys, damit kurze Status-, Diff- und Log-Ausgaben im Browser-Terminal leichter zu lesen sind.
git config --local user.name "LabEx Learner"
git config --local user.email "learner@example.com"
git config --local color.ui false
Führe git status --short aus. Die Datei sollte als "untracked" (nicht verfolgt) erscheinen, da Git sie zwar sieht, aber noch nicht überwacht. In der kurzen Statusausgabe bedeutet ??, dass eine Datei noch nicht verfolgt wird.
git status --short
Commit der initialen Konfiguration
In diesem Schritt erstellst du den ersten Commit. Git hat zwei Hauptbereiche, die man an dieser Stelle verstehen muss: das Arbeitsverzeichnis (Working Tree) und den Staging-Bereich (Index). Das Arbeitsverzeichnis enthält die Dateien, die du siehst und bearbeitest. Der Staging-Bereich enthält die Änderungen, die in den nächsten Commit aufgenommen werden sollen.
Stage nur die Konfigurationsdatei. Vermeide git add . während der Lernphase, da dies versehentlich nicht zusammengehörige Dateien hinzufügen könnte.
git add app.conf
Überprüfe erneut den kurzen Status. A bedeutet, dass die Datei als neue Datei gestaged wurde.
git status --short
Erstelle den ersten Commit mit einer aussagekräftigen Nachricht.
git commit -m "Track initial app configuration"
Überprüfe die kürzliche Historie. --oneline hält die Ausgabe kompakt. Die Option --no-pager gibt das Log direkt im Terminal aus, anstatt einen interaktiven Viewer zu öffnen.
git --no-pager log --oneline
Überprüfung und Commit einer Konfigurationsänderung
In diesem Schritt bearbeitest du die Konfiguration und überprüfst die Änderung, bevor du sie committest. Dies ist die grundlegende Git-Gewohnheit für das Konfigurations-Tracking: Nimm eine gezielte Änderung vor, prüfe das Diff und committe sie mit einer Nachricht, die den Zweck erklärt.
Ändere log_level von info auf debug. Der Befehl sed -i bearbeitet die Datei direkt. Das Muster beginnt mit ^ und endet mit $, sodass nur die vollständige Zeile log_level=info geändert wird.
sed -i 's/^log_level=info$/log_level=debug/' app.conf
Zeige den Unterschied zwischen der committeten Version und deinem Arbeitsverzeichnis an. --no-pager hält das Diff direkt im Terminal.
git --no-pager diff -- app.conf
Das Diff sollte eine entfernte Zeile und eine hinzugefügte Zeile zeigen:
-log_level=info
+log_level=debug
Stage und committe die gezielte Änderung.
git add app.conf
git commit -m "Enable debug logging"
Sieh dir die kompakte Historie erneut an. Du solltest nun zwei Commits sehen.
git --no-pager log --oneline
Überprüfe abschließend, ob das Arbeitsverzeichnis für app.conf sauber ist.
git status --short app.conf
Zusammenfassung
Du hast grundlegende Git-Operationen für das Tracking von Linux-Konfigurationen geübt. Du hast eine Konfigurationsdatei untersucht, ein Repository initialisiert, die lokale Identität des Autors festgelegt, den Status überprüft, eine spezifische Datei gestaged, einen initialen Commit erstellt, ein gezieltes Diff überprüft und eine Konfigurationsänderung committet. Diese Gewohnheiten helfen Administratoren dabei, Konfigurationsänderungen nachzuvollziehen und wiederherzustellen, anstatt Dateien blind zu bearbeiten.



