Simple GIT – Merge und Rebase verständlich

Die Frage die ich mit Abstand am meisten höre wenn ich mit Entwicklern und Teams zum Thema GIT zusammenarbeite ist die Frage nach dem Unterschied zwischen Merge und Rebase.

Dieses Thema wurde bereits an vielen Stellen diskutiert, u.a. hier, hier, hier und hier

Es scheint schwierig, die Konzepte zu vestehen, vor allem da auf den ersten Blick Merge und Rebase ein recht ähnliches Ziel verfolgen – das Zusammenbringen von mindestens zwei Branches.

Die scheinbare Komplexität liegt aber definitiv auch an den kryptischen Beschreibungen, die für Rebase im Web zu finden sind.

 “Forward-port local commits to the updated upstream head aus Git Rebase MAN Page

“Rebase is recreating your work of one branch onto another.von www.fiveminutes.eu

Meine Erklärung für Rebase ist diese:

“Hätte ich meinen Branch doch nicht gestern sondern heute gezogen”.

Nehmen wir ein Beispiel.

Lars und Karl arbeiten im selben Projekt.

Nehmen wir zusätzlich an, Entwickler Lars branched von master weg und arbeitet auf seinem Feature Branch. Währenddessen arbeitet Entwickler Karl auf dem master weiter und macht einige wichtige Änderungen, die die Performance der Plattform ernorm verbessern.

Diese Änderungen sind auf dem master.

Feature Branch - Merge vs. Rebase

 

Lars denkt sich jetzt am nächsten morgen, dass die Änderungen von Karl wirklich praktisch wären. Eine Möglichkeit wäre zu mergen. Eigentlich denkt sich Lars aber – “Hätte ich den Feature Branch doch nicht schon gestern gezogen sondern erst heute“.

Use Case Rebase

Kommt dieser Gedanke ist das ein gutes Indiz, dass Rebase die richtige Lösung sein könnte, denn ein Rebase macht genau das.

Der Effekt von Rebase

Wann einen Rebase machen?

Mit dieser Erklärung scheinen die meisten Entwickler zufrieden. Gibt es vielleicht andere einfache Erklärungen?

Effective Trainings & Consulting - Martin Dilger



Hat Ihnen dieser Blog-Eintrag gefallen? Ich stelle in diesem Blog Informationen über Tools, Frameworks und Werkzeuge zur Verfügung, die mich produktiver machen. Vielleicht kann ich auch Ihnen helfen, produktiver zu werden.


Ich unterstütze Sie als freier Mitarbeiter bei der Entwicklung von Software-Projekten, Agiler Arbeit sowie Schulungen / Fortbildungen.


Jeden Tag ein bisschen produktiver - ab heute