⌨️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