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

Was "linear" bedeutet

Eine lineare Historie hat keine Merge-Commits — jeder Commit hat genau einen Elternteil.

Warum Linearitat wichtig ist

  • git bisect lauft auf einem Pfad.
  • git log --oneline sagt die Wahrheit ohne --graph.
  • git revert zielt auf einen einzelnen Commit sauber.

Linearitat lokal erreichen

git checkout feature/login
git fetch origin
git rebase origin/main
git push --force-with-lease

Auf Remote durchsetzen

  • Rebase and merge.
  • Squash and merge.
  • Fast-forward only.

Lokal durchsetzen

git config --global pull.rebase true
git config --global pull.ff only
git config --global rebase.autoStash true

Squash vs Rebase Merge

# Squash and merge
git merge --squash feature/login
git commit -m "Add OAuth login"

# Rebase and merge
git rebase main feature/login
git checkout main
git merge --ff-only feature/login

Nicht-lineare Historie erkennen

git log --merges
git log --first-parent --oneline