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:
Dev_Zweig
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
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
Wir können sehen, dass unser Zweig Main
die folgenden Commits nicht hat:
edcb8ae
Zweite Fehlerbehebungcefb7bb
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:
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
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 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.
LinkedInVerwandter Artikel - Git Commit
- Alle Dateien außer einer Datei zum Commit hinzufügen
- Ändern Sie einen bestimmten Commit in Git
- Beenden Sie den Commit-Nachrichteneditor
- Fügen Sie dem letzten Commit in Git eine Datei hinzu
- Git Add und Git Commit in einem Befehl
- git add, git commit und git push in One Command