Neues Release des Versionskontrollsystems Git

Git in Version 2.22 veröffentlicht: Interaktives Merging und Rebasing
Keine Kommentare

Git 2.22 ist erschienen. Mit dem neuen Release des Versionskontrollsystems gilt --preserve-merges nun offiziell als veraltet. Stattdessen soll die Option --rebase-merges verwendet werden, die interaktives Merging und Rebasing erlaubt.

Das Open-Source-Versionsverwaltungstool Git ist in Version 2.22 verfügbar. Darin sind einige Neuerungen enthalten. Das Feature --preserve-merges gilt nun als deprecated, doch ein Ersatz mit erweiterter Funktionalität steht schon seit einigen Versionen bereit. Worum geht es bei der als veraltet deklarierten Funktion und was kann die neue Funktion besser? Der GitHub-Blog liefert Beispiele.

Hintergrund: Rebasing in Git

git rebase wiederholt eine Serie von Commits auf einem neuen initialen Commit, z. B. wenn sich der Master Branch verändert hat. Das demonstriert GitHub anhand eines Beispiels. Zunächst wird ausgehend von einem Master Branch ein weiterer Branch erstellt:

Rebasing; Quelle: GitHub

Der Master Branch wurde verändert, während der Feature Branch an der gleichen Stelle verbleibt:

Rebasing; Quelle: GitHub

So stellt sich der Stand nach dem Rebasing des Feature Branch auf den neuen Master Branch dar:

Rebasing; Quelle: GitHub

Schwieriger wird es, wenn anders als im obigen Beispiel my-feature seine eigene Zweigstruktur besitzt oder man die interaktiven Features von rebase nutzen will, z. B. das Entfernen, Umstellen oder Umbenennen von Commits.  Wenn kein Wert auf die Interaktivität gelegt wird, kann zwar --preserve-merges genutzt werden. Diese Option gilt jedoch ab Git 2.22 als veraltet.

Git 2.22: --rebase-merges

Ab der aktuellen Git-Version soll --rebase-merges verwendet werden, das schon in Git 2.18 eingeführt wurde. Dadurch kann die gesamte Topologie eines Commit-Graphen verschoben werden. Die Funktion soll die Struktur der Änderungen bewahren, ohne die volle Rebasing-Interaktivität zu verlieren.

Auf dem GitHub-Blog wird die Anwendung von --rebase-merges in einem Gif demonstriert. Dort wird beim Rebasing die Zweigstruktur von my-feature beibehalten. Gleichzeitig können Änderungen an der Commit Message eingefügt werden, was durch die Behebung eines Tippfehlers simuliert wird:

Interaktives Rebase Merge in Git 2.22; Quelle: GitHub

Weitere Features in Git 2.22

Zu den weiteren Neuerungen in Version 2.22 zählt, dass git branch und git checkout -b die Merge-Base-Syntax mit drei Punkten beherrschen. Git 2.22 bringt zudem Trace2 mit, einen neuen Tracing-Mechanismus. Er erlaubt das Festlegen eines Ziels, um langlaufende Performance- und Telemetriedaten zu erhalten, ist allerdings standardmäßig deaktiviert. Auch einige Bugs wurden in Git 2.22 behoben.

Alle weiteren Details zur neuen Git-Version gibt es in den Release Notes und im GitHub-Blogeintrag.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -