Git Commit erklärt
Der Befehl git commit ist einer der wichtigsten in Git, da er verwendet wird, um Änderungen im lokalen Repository festzuhalten. Ein Commit speichert einen Schnappschuss der aktuellen Arbeit und fügt ihn zur Historie des Repositories hinzu. Jedes Commit wird mit einer eindeutigen ID versehen, sodass der Verlauf eines Projekts nachverfolgt werden kann.
Bernd Fischer
12. Okt 2024 · 3 Minuten Lesezeit
1. Was ist ein Git Commit?
Ein Commit ist eine Speicherung eines bestimmten Zustands eines Git-Repositories. Es speichert alle Änderungen, die in der Arbeitskopie gemacht und zum Staging-Bereich hinzugefügt wurden. Mit jedem Commit wird ein Snapshot des aktuellen Standes des Projekts erstellt, und diese Commits bilden zusammen die Projektgeschichte.
Ablauf eines Commits:
- Änderungen vornehmen: Dateien im Projekt bearbeiten oder neue Dateien hinzufügen.
- Änderungen zum Staging-Bereich hinzufügen: Die geänderten oder neu hinzugefügten Dateien mit
git addzum Staging-Bereich hinzufügen. - Commit erstellen: Mit
git commitdie Änderungen endgültig speichern.
2. Syntax von git commit
Der grundlegende Befehl für einen Commit sieht wie folgt aus:
git commit -m "Commit-Botschaft"
-m: Hiermit wird eine Commit-Botschaft (Commit Message) übergeben, die beschreibt, welche Änderungen vorgenommen wurden.- "Commit-Botschaft": Eine kurze Beschreibung der durchgeführten Änderungen.
Beispiel: Einen einfachen Commit erstellen
git add <Datei>
git commit -m "Fügt neue Datei hinzu"
In diesem Beispiel wird eine Datei zum Staging-Bereich hinzugefügt und anschließend mit einer Beschreibung der vorgenommenen Änderung committet.
3. Der Staging-Bereich
Bevor ein Commit erstellt wird, müssen die Änderungen dem Staging-Bereich (auch "Index" genannt) hinzugefügt werden. Mit dem Befehl git add können Dateien oder Änderungen vorbereitet werden, die dann im nächsten Commit enthalten sein sollen.
Beispiel: Änderungen zum Staging-Bereich hinzufügen
git add datei1.txt
git add datei2.txt
Hier werden zwei Dateien dem Staging-Bereich hinzugefügt. Diese Dateien werden im nächsten Commit gespeichert.
Beispiel: Alle Änderungen zum Staging-Bereich hinzufügen
git add .
Dieser Befehl fügt alle Änderungen (neue Dateien, Änderungen in bestehenden Dateien und gelöschte Dateien) zum Staging-Bereich hinzu.
4. Commit-Nachricht
Die Commit-Nachricht beschreibt die Änderungen, die im Commit enthalten sind. Eine gute Commit-Nachricht sollte kurz, prägnant und aussagekräftig sein, damit der Verlauf der Änderungen leichter nachvollzogen werden kann.
Beispiel: Eine sinnvolle Commit-Nachricht
git commit -m "Fix: Korrigiert Berechnungsfehler in der Summe-Funktion"
In diesem Beispiel beschreibt die Commit-Nachricht, was in dem Commit geändert wurde und warum (in diesem Fall wurde ein Berechnungsfehler behoben).
Erweiterte Commit-Nachricht
Wenn eine ausführlichere Beschreibung der Änderungen benötigt wird, kann der Befehl ohne die -m-Option verwendet werden. Dadurch öffnet sich der Standard-Editor, in dem eine längere Nachricht eingegeben werden kann.
git commit
In der ersten Zeile kann eine kurze Zusammenfassung eingegeben werden, gefolgt von einer detaillierten Beschreibung in den folgenden Zeilen.
5. Änderung eines Commits: git commit --amend
Falls nach einem Commit noch etwas hinzugefügt oder eine Commit-Nachricht korrigiert werden muss, kann der Befehl git commit --amend verwendet werden. Damit wird der letzte Commit geändert, ohne einen neuen Commit zu erstellen.
Beispiel: Commit-Nachricht ändern
git commit --amend -m "Neue Commit-Nachricht"
Dieser Befehl überschreibt die Commit-Nachricht des letzten Commits mit einer neuen Nachricht.
Beispiel: Änderungen zum letzten Commit hinzufügen
git add weitere_datei.txt
git commit --amend
In diesem Beispiel wird eine Datei hinzugefügt, die im vorherigen Commit vergessen wurde. Anstatt einen neuen Commit zu erstellen, wird der vorherige Commit bearbeitet, um die neue Datei zu enthalten.
6. Git Commit ohne Staging-Bereich: git commit -a
Mit der Option -a können alle geänderten Dateien (die bereits im Repository existieren) direkt committet werden, ohne sie vorher mit git add zum Staging-Bereich hinzuzufügen. Diese Option betrifft jedoch nur bereits getrackte Dateien (Dateien, die Git bereits kennt).
Beispiel: Commit ohne git add
git commit -a -m "Commit für alle geänderten Dateien"
In diesem Beispiel werden alle geänderten Dateien direkt zum Commit hinzugefügt und dann committet.
7. Mehrere Dateien mit einer Commit-Nachricht speichern
Es ist möglich, mehrere Änderungen gleichzeitig in einem Commit zu speichern. Dies wird häufig gemacht, wenn alle Änderungen zusammengehören und in einem Schritt festgehalten werden sollen.
Beispiel: Mehrere Dateien in einem Commit speichern
git add datei1.txt
git add datei2.txt
git commit -m "Fügt Datei 1 und Datei 2 hinzu"
8. Commit-Historie überprüfen
Die Commit-Historie kann mit dem Befehl git log überprüft werden. Damit können alle früheren Commits mit ihren Nachrichten und IDs angesehen werden.
Beispiel: Commit-Historie anzeigen
git log
Dieser Befehl zeigt eine Liste aller bisherigen Commits, die den Commit-Hash, den Autor, das Datum und die Commit-Nachricht enthalten.
Beispiel: Kurze Commit-Historie anzeigen
git log --oneline
Dieser Befehl zeigt eine kürzere Übersicht der Commit-Historie, wobei nur der erste Teil des Commit-Hashes und die Commit-Nachricht angezeigt werden.
9. Commit zurücksetzen: git reset
Falls ein Commit rückgängig gemacht werden soll, kann der Befehl git reset verwendet werden. Damit kann man zu einem bestimmten Commit zurückkehren und dabei Änderungen im Arbeitsverzeichnis beibehalten oder verwerfen.
Beispiel: Zu einem vorherigen Commit zurückkehren
git reset --soft HEAD~1
Dieser Befehl setzt das Repository auf den Zustand des vorherigen Commits zurück, behält jedoch die Änderungen im Staging-Bereich. Alternativ kann mit --hard das Arbeitsverzeichnis vollständig auf den Zustand des vorherigen Commits zurückgesetzt werden:
git reset --hard HEAD~1