⌨️Git-Spickzettel
Die wichtigsten Befehle zum Nachschlagen – durchsuchbar, Klick kopiert. Rot markierte Befehle können nicht committete Arbeit oder fremde Commits unwiederbringlich löschen.
⚙️ Einrichten
- Name für alle Commits setzen
- E-Mail für alle Commits setzen
- Standard-Branchname für neue Repositories
- Neues Repository im aktuellen Ordner
- Repository kopieren (inkl. ganzer Geschichte), origin wird eingerichtet
📝 Ändern & Committen
- Zustand von Arbeitsverzeichnis und Index
- Änderung vormerken (in den Index)
- Änderungen stückweise (Hunk für Hunk) vormerken
- Index als neuen Commit speichern
- Letzten Commit ersetzen (Nachricht/Inhalt) – nur wenn noch nicht gepusht
- ⚠️ Lokale Änderung verwerfen (aus dem Index)
- Vormerkung aufheben, Änderung bleibt
- Nicht mehr versionieren, Datei bleibt liegen
- Umbenennen (Git erkennt Umbenennungen ohnehin über den Inhalt)
🔍 Ansehen
- Geschichte als Graph, alle Branches
- Alle Änderungen an einer Datei
- Arbeitsverzeichnis gegen Index
- Index gegen HEAD (was committet würde)
- Einen Commit mit Diff anzeigen
- Wer hat welche Zeile zuletzt geändert?
- Rohes Commit-Objekt anzeigen
🌿 Branches
- Lokale Branches auflisten (-a: auch Remote-Tracking)
- Branch anlegen und wechseln
- Branch wechseln
- Zurück zum vorherigen Branch
- Branch löschen (nur wenn gemergt; -D erzwingt)
- Branch umbenennen
🔀 Zusammenführen
- feature in den aktuellen Branch mergen (Fast-Forward oder Merge-Commit)
- Immer einen Merge-Commit erzeugen
- Merge mit Konflikten abbrechen
- Eigene Commits auf main neu aufsetzen (neue IDs!)
- Letzte 3 Commits interaktiv umordnen, zusammenfassen, umbenennen
- Nach Konfliktlösung weitermachen (--abort: abbrechen)
- Einzelnen Commit auf den aktuellen Branch kopieren
- Gemeinsamen Vorfahren ermitteln
↩️ Rückgängig machen
- Gegen-Commit erzeugen – sicher für gepushte Commits
- Letzten Commit auflösen, Änderungen bleiben vorgemerkt
- (--mixed) Commit auflösen, Änderungen bleiben im Arbeitsverzeichnis
- ⚠️ Commit und alle lokalen Änderungen verwerfen
- Wo stand HEAD früher? Rettungsanker für „verlorene“ Commits
- ⚠️ Zum vorherigen Stand von HEAD zurück
- ⚠️ Zeigt unversionierte Dateien, die clean -f löschen würde
📦 Zwischenspeichern & Suchen
- Lokale Änderungen parken (-u: auch unversionierte)
- Geparkte Stände auflisten
- Letzten Stand zurückholen und aus der Liste entfernen
- Binärsuche nach dem Commit, der einen Fehler eingebaut hat
- Binärsuche automatisch mit einem Testbefehl
- Commits finden, die den Begriff hinzugefügt/entfernt haben
☁️ Remotes
- Remotes mit URLs anzeigen
- Neues holen, nur origin/* bewegen
- Holen und eigene Commits oben drauf setzen
- Branch hochladen und Upstream setzen
- ⚠️ Überschreiben – aber nur, wenn niemand inzwischen gepusht hat
- Branch auf dem Server löschen
- Upstream und ahead/behind je Branch
🏷 Tags
- Annotiertes Tag auf HEAD
- Tags auflisten
- Tag hochladen (push überträgt Tags nicht automatisch)
- Beschreibung relativ zum letzten Tag, z. B. v1.0.0-3-g4ac0b51
🧬 Interna
- ID eines Inhalts berechnen: d670460b4b4aece5915caf5c68d12f560a9fe3e4
- Typ eines Objekts (blob, tree, commit, tag)
- Inhalt des Index
- Revision in eine vollständige ID übersetzen
- Lose und gepackte Objekte zählen
- Aufräumen und packen
- Unerreichbare Objekte finden