Von Gast (nicht überprüft) , 29 April 2026

Warum squashen

Ein Feature-Branch sammelt oft "WIP", "fix typo" und "address review" Commits, die die Absicht begraben. Squash kondensiert diese in eine kleine Anzahl logisch sinnvoller Commits vor dem Merge.

Squash beim Merge

git checkout main
git merge --squash feature
git commit -m "Add feature X"

Squash mit interaktivem Rebase

git rebase -i main

Andern Sie pick in squash oder fixup.

Von Gast (nicht überprüft) , 29 April 2026

Vorfallsreaktion

Sie haben einen API-Key, ein Passwort oder einen privaten Schlussel committet. Aus dem letzten Commit zu entfernen reicht nicht — Git behalt die Datei in jedem fruheren Commit, bis Sie die Historie umschreiben.

Schritt 1: sofort rotieren

Bevor Sie das Repo anfassen, widerrufen Sie die Anmeldedaten. Nehmen Sie an, dass jede gepushte Historie bereits gespiegelt, gescraped oder gecached wurde.

Von Gast (nicht überprüft) , 29 April 2026

Warum filter-repo

git filter-repo ist der moderne Ersatz fur das veraltete git filter-branch. Drastisch schneller — manchmal 100x — sicherer per Default und bietet Hochlevel-Operationen, die Historie-Chirurgie tatsachlich braucht.

Installation

macOS: brew install git-filter-repo. Debian/Ubuntu: apt install git-filter-repo.

Von Gast (nicht überprüft) , 29 April 2026

Das Subtree-Modell

Ein Subtree fugt die Historie eines anderen Repositorys in ein Unterverzeichnis Ihres ein. Anders als Submodule gibt es keinen separaten Gitlink und keine zusatzlichen Befehle beim Klonen.

Von Gast (nicht überprüft) , 29 April 2026

Die Frustrationsliste

Submodule sind machtig, bringen aber neue Nutzer wiederholt zu Fall. Diese Seite katalogisiert die haufigsten Fehler.

Von Gast (nicht überprüft) , 29 April 2026

Was Submodule sind

Ein Submodul ist ein Git-Repository, das in einem anderen verschachtelt ist. Das ubergeordnete Repo zeichnet die URL des Submoduls und einen spezifischen Commit-SHA auf, sodass jeder, der das ubergeordnete klont, genau den gemeinsam getesteten Code abrufen kann.

Von Gast (nicht überprüft) , 29 April 2026

Freihandige Bisektion

Manueller Bisect erfordert ein menschliches Urteil bei jedem Schritt. git bisect run automatisiert die Schleife: liefern Sie ein Skript, das 0 fur gut, ungleich Null fur schlecht und 125 fur "diesen Commit uberspringen" zuruckgibt.

Von Gast (nicht überprüft) , 29 April 2026

Binare Suche durch die Historie

git bisect fuhrt eine binare Suche uber Commits durch, um den zu finden, der einen Bug eingefuhrt hat. Bei einem bekannt-guten und einem bekannt-schlechten Commit checkt Git Commits in der Mitte aus und fragt zum Testen.

Von Gast (nicht überprüft) , 29 April 2026

Was cherry-pick tut

git cherry-pick wendet das Diff eines oder mehrerer Commits auf den aktuellen Branch als neue Commits an. Das richtige Werkzeug, wenn Sie eine spezifische Anderung ohne Merge des gesamten Branches mochten — typisch fur Backports von Fixes auf Release-Branches.

Von Gast (nicht überprüft) , 29 April 2026

Warum interaktiver Rebase

Der interaktive Rebase schreibt eine Sequenz von Commits in eine sauberere, aussagekraftigere Historie um, bevor sie veroffentlicht wird. Es ist das chirurgische Instrument von Git: Sie konnen Commits umordnen, bearbeiten, mit squash zusammenfassen, fixen, loschen, umbenennen oder aufteilen — alles in einer einzigen gefuhrten Sitzung.

Die Todo-Liste

Das Ausfuhren von git rebase -i offnet einen Editor mit einer Todo-Liste. Jede Zeile hat ein Verb und einen Commit. Zeilen umordnen, um Commits umzuordnen.