Fast-Forward-Merges

Ein Fast-Forward-Commit ist eine häufig bei Einzelprojekten entstehende Merge-Logistik.

Wenn man z. B. einfach von unterschiedlichen Projektumgebungen und alleine auf einem zentralen, öffentlichem Repository arbeitet, dann setzt man mit wechselnden Aktualisierungen (push) und Herunterladen (pull) von Git Repositories immer wieder mit den lokalen Entwicklungszweigen oben fort.

Hierzu eine passende Grafik: (wieder gitbu.ch)

Zwei Branches vor FF-Merge

Zwei Branches vor FF-Merge

Wenn man jetzt git merge durchführt erhält man:

Zwei Branches nach FF-Merge

Zwei Branches nach FF-Merge

Im Grunde kein Problem, denn alle notwendigen Dateien und Ordner wurden (sicherlich) sauber verschmolzen.

Aber: der verschmolzene master wird einfach nur gerade gezogen und somit ist nachträglich im git log der frühere Zweig nicht mehr erkennbar.

Daher kennt man folgende Parameter, um das gewünschte Merge-Verhalten zu steuern:

  • Parameter --no-ff (kein Fast-forward)

  • Parameter --ff-only (Fast-Forward nutzen)

Hier das Git-Logging in den zwei möglichen Varianten:

Merging mit und ohne Fast-Forward

Merging mit und ohne Fast-Forward

Für das Standardverhalten beim Mergen kann man Git Konfigurationen nutzen.

Git Dokumentation zur Configuration Git Merge: https://git-scm.com/docs/git-merge#_configuration