20. August 2013

Merge: Zusammenführen von Branches

Mit git merge werden Änderungen aus einem anderen Branch in den aktiven Branch übernommen:

$ git merge <commit>

Dabei werden die Änderungen, die zwischenzeitlich in dem zu mergenden Branch erfolgt sind, auf den aktuellen Stand im aktiven Branch angewendet.

Im einfachsten Fall ist hier in der Zwischenzeit gar keine Änderung erfolgt. Dann kürzt git ab und setzt einfach die Referenz des aktuellen Branches auf den zu mergenden Commit. Dies wird als fast-forward-Merge bezeichnet. Ein solcher Merge ist in der Historie nicht als Merge erkennbar.

Wenn kein fast forward möglich ist (oder --no-ff verwendet wird), wird git die Änderungen aus dem zu mergenden Branch erfolgten Änderungen im aktuellen Branch anwenden und einen expliziten Merge-Commit erstellen, der die beiden zugrundeliegenden Commits zusammenführt:

Aufgaben

  1. Erstellen Sie einen neuen Test-Branch integration basierend auf master und mergen Sie die zuvor erstellten Branches bug1 und feature1:

    git checkout -b integration master
    git merge bug1
    git merge feature1