Selektives Zusammenführen von Änderungen aus verschiedenen Branches in Git

John Wachira 15 Februar 2024
Selektives Zusammenführen von Änderungen aus verschiedenen Branches in Git

In diesem Artikel wird das Zusammenführen bestimmter Änderungen von einem Zweig zu einem anderen erläutert. Wie wir wissen, führt Git beim Zusammenführen von Zweigen ausnahmslos alle Dateien zusammen.

Sie finden sich möglicherweise in einem Szenario wieder, in dem Sie einige Commits in einem Zweig haben und einige davon auswählen und mit einem anderen Zweig zusammenführen müssen. Mal sehen, wie wir das umgehen können.

Selektives Zusammenführen von Änderungen aus verschiedenen Branches in Git

Zum besseren Verständnis simulieren wir ein Szenario, in dem wir einige Commits von einem Zweig zum anderen zusammenführen müssen. Hier ist, wie wir es umgehen werden.

Beispiel:

In unserem lokalen Repository Delftscopetech haben wir zwei Zweige, nämlich:

  1. Dev_Zweig
  2. Haupt

Um die Dinge so praktisch wie möglich zu machen, gehen wir davon aus, dass wir einige Fehler in unserem Projekt gefunden haben, die behoben werden mussten. Nachdem wir die Fehler behoben hatten, stellten wir fest, dass wir im Zweig Dev_Branch statt im Zweig Main ausgecheckt waren.

Eine normale Zusammenführung wird unser Projekt zerstören. Was machen wir?

In einem solchen Szenario führen wir zuerst den Befehl git log aus, um unseren Commit-Verlauf im Dev_Branch anzuzeigen. Stellen Sie sicher, dass Sie sich in dem Zweig befinden, der die gewünschten Änderungen enthält.

$ git checkout Dev_Branch

Hier ist unsere Commit-Historie:

$ git log --oneline

Commit-Verlauf in Dev_Branch

Wir werden dann die Commits identifizieren, die wir mit unserem Main-Zweig zusammenführen wollen. Hier ist die Commit-Historie in unserem Main-Zweig:

$ git checkout Main
$ git log --oneline

Commit-Verlauf im Hauptzweig

Wir können sehen, dass unser Zweig Main die folgenden Commits nicht hat:

  1. edcb8ae Zweite Fehlerbehebung
  2. cefb7bb Erste Fehlerbehebung

Um die beiden Commits zusammenzuführen, verwenden wir den Befehl git cherry-pick und geben die Commit-IDs für die beiden Commits ein. Stellen Sie sicher, dass Sie in der Filiale ausgecheckt sind, mit der Sie zusammenführen möchten, in unserem Fall die Filiale Haupt.

$ git checkout Main

Wir können jetzt die cherry-pick wie unten gezeigt ausführen:

$ git cherry-pick edcb8ae cefb7bb

Ausgang:

Git Selective Merge Output

Wenn Sie keine Zusammenführungskonflikte haben, sollten Sie etwas Ähnliches wie die obige Ausgabe erhalten. Lassen Sie uns die Zusammenführung bestätigen.

$ git log --oneline

Zusammenführung bestätigen

Die Ausgabe zeigt, dass Git zwei neue Commits mit unterschiedlichen Commit-IDs, aber derselben Beschreibung erstellt hat. Wir können nun den Branch in das Remote-Repo pushen, indem wir den Befehl git push wie unten gezeigt ausführen:

$ git push origin Main

Zusammenfassend lässt sich sagen, dass wir dank des git cherry-pick-Befehls selektiv in Git zusammenführen können. Alles, was Sie brauchen, ist die Commit-ID für die Änderung, die Sie zusammenführen möchten, und sicherzustellen, dass Sie im richtigen Zweig ausgecheckt sind.

John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Verwandter Artikel - Git Commit

Verwandter Artikel - Git Merge