2.7 KiB
Commits
Was ist ein Commit?
Ein Commit ist ein Schnappschuss deines Projekts zu einem bestimmten Zeitpunkt. Er speichert den aktuellen Stand der getrackten Dateien und sorgt für eine nachvollziehbare Versionshistorie.
Ein Commit enthält:
- Den Zustand der getrackten Dateien
- Eine Commit-Message zur Beschreibung der Änderung
- Einen eindeutigen Hash (zur Identifikation)
- Infos über den Autor (Name, E-Mail, Zeitstempel)
[!IMPORTANT] Git speichert bei Commits nicht jedes Mal alle Dateien komplett neu, sondern nur die Änderungen (Diffs) zum vorherigen Zustand.
Das macht das Ganze effizient und schnell.
Warum Commits?
Mit Commits kannst du:
- Änderungen nachvollziehen („Was wurde wann geändert und warum?“)
- Fehler zurückverfolgen und frühere Versionen wiederherstellen
- Änderungen rückgängig machen, ohne alles manuell löschen zu müssen
[!TIP] Commits sind wie Checkpoints in nem Game: Wenn was schiefläuft, springst du einfach zu einem stabilen Zustand zurück.
Änderungen tracken
Git funktioniert nicht von allein – du entscheidest selbst, welche Änderungen wichtig sind und welche ignoriert werden sollen. Dafür gibt’s das sogenannte Staging Area-System.
Eine Datei in deinem Projekt kann drei Zustände haben:
- Untracked: Git kennt die Datei noch nicht.
- Staged: Die Datei wurde ausgewählt („zum Commit vorgemerkt“).
- Committed: Die Datei ist Teil eines Snapshots im Repository – also dauerhaft gespeichert.
Die Staging Area
Zwischen deinem Arbeitsverzeichnis und dem Repository liegt die Staging Area. Sie ist wie ne Zwischenablage für alles, was beim nächsten Commit dabei sein soll.
Alles auf einmal stagen:
git add .
Nur bestimmte Dateien stagen:
git add <dateiname>
[!TIP] Bevor du anfängst zu stagen, immer erstmal die neuesten Änderungen vom Remote holen:
git pull
Commit erstellen
Ein Commit speichert die gestagten Änderungen dauerhaft im lokalen Repository. Befehl:
git commit -m "Kurze Commit-Nachricht"
Die Message sollte kurz und klar sagen, was geändert wurde. Beispiel:
git commit -m "Fix: Speicherleck im Audio-Buffer behoben"
Commit pushen
Ein Commit ist erstmal nur lokal. Um ihn ins Remote-Repo (z. B. GitHub) zu pushen:
git push
Wenn du nen neuen Branch pushst oder ihn explizit setzen willst:
git push -u origin <branchname>
Änderungen pullen
Wenn du die neuesten Änderungen aus dem Remote-Repository holen willst:
git pull
Das zieht die neuesten Commits vom Remote (meist origin
) und merged sie in deinen aktuellen Branch.
Von einem bestimmten Remote oder Branch:
git pull origin <branchname>