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.
Dieses Tutorial erklärt, wie der Befehl git commit verwendet wird, und zeigt verschiedene Optionen zur Optimierung des Workflows.
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.
git add
zum Staging-Bereich hinzufügen.git commit
die Änderungen endgültig speichern.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.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.
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.
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.
git add .
Dieser Befehl fügt alle Änderungen (neue Dateien, Änderungen in bestehenden Dateien und gelöschte Dateien) zum Staging-Bereich hinzu.
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.
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).
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.
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.
git commit --amend -m "Neue Commit-Nachricht"
Dieser Befehl überschreibt die Commit-Nachricht des letzten Commits mit einer neuen Nachricht.
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.
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).
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.
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.
git add datei1.txt
git add datei2.txt
git commit -m "Fügt Datei 1 und Datei 2 hinzu"
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.
git log
Dieser Befehl zeigt eine Liste aller bisherigen Commits, die den Commit-Hash, den Autor, das Datum und die Commit-Nachricht enthalten.
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.
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.
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