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

"Schlechter Merge" definieren

Ein schlechter Merge kann bedeuten: Sie haben den falschen Branch gemerged, Sie haben Konflikte falsch gelost, der Merge fuhrte eine Regression ein.

Fall 1: noch nicht gepusht

git reset --hard ORIG_HEAD

Fall 2: gepusht, andere haben nicht gepullt

git reset --hard ORIG_HEAD
git push --force-with-lease

Fall 3: gepusht, andere haben gepullt

git revert -m 1 <merge-sha>

Nach einem Revert erneut mergen

git revert <revert-sha>
git checkout feature/login
git rebase main
git checkout main
git merge feature/login

Fall 4: schlechte Konfliktauflosung

git checkout main
git commit -m "Fix conflict resolution from merge of feature/login"

Fall 5: falschen Branch gemerged

git reset --hard ORIG_HEAD
git merge correct-branch

Einen Merge inspizieren

git log -1 --format=fuller --stat HEAD
git show -m HEAD
git diff HEAD^1 HEAD
git diff HEAD^2 HEAD

Schlechte Merges vermeiden

  • Immer --no-ff auf lang lebenden Branches.
  • CI fur das Merge-Ergebnis konfigurieren.
  • git mergetool verwenden.
  • Tests sofort nach jedem Merge ausfuhren.

Das Recovery-Toolkit

  • ORIG_HEAD.
  • git reflog.
  • git revert -m.
  • git push --force-with-lease.