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

Der Befehl, den jeder kopiert

git log --all --graph --decorate --oneline

Anatomie

  • --all - jeden Branch und Tag einbeziehen.
  • --graph - Eltern/Kind-Graph zeichnen.
  • --decorate - Commits mit Branch- und Tag-Namen annotieren.
  • --oneline - Kurzform.

Bessere Formatierung

git log --all --graph \
  --pretty=format:'%C(yellow)%h%Creset %C(cyan)%an%Creset %s %C(green)(%cr)%Creset%C(red)%d%Creset' \
  --abbrev-commit

Zu ein

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

Drei Strategien, drei Historien

Beim Integrieren eines Feature-Branches in main haben Sie drei Optionen.

Merge Commit

git checkout main
git merge --no-ff feature/login

Pro: bewahrt die Wahrheit der Entwicklung. Contra: nicht-lineare Historie.

Squash and merge

git checkout main
git merge --squash feature/login
git commit -m "Add OAuth login"

Pro: lineare Historie. Contra: verliert Commit-Detail.

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

Das Problem, das range-diff lost

Ein Mitwirkender pusht v1, dann v2 nach Review-Feedback.

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

Das Zeilenenden-Problem

Windows verwendet CRLF, Linux und macOS verwenden LF.

Das einfache, robuste Setup

# .gitattributes
* text=auto eol=lf

*.{cmd,bat,ps1} text eol=crlf

*.png binary
*.jpg binary
*.pdf binary
*.zip binary

Wie text=auto funktioniert

Beim Commit schaut Git auf den Dateiinhalt.

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

Warum migrieren

SVN funktioniert seit zwei Jahrzehnten. Aber sein zentralisiertes Modell, langsames Branching und Schwierigkeiten mit moderner Tooling-Integration drangen die meisten Teams zu Git.