Git Cherry-Pick vs. Merge-Workflow
Dieser Artikel beschreibt den Arbeitsablauf für die Befehle git cherry-pick
und git merge
. Wir verwenden beide Befehle, um Änderungen von einem Zweig zum anderen in das Git-Versionskontrollsystem zu integrieren.
Bestimmte Szenarien bevorzugen jedoch die Verwendung eines Befehls gegenüber einem anderen.
den git cherry-pick
-Befehl
Der Befehl git cherry-pick
ist ein nützliches Git-Dienstprogramm, mit dem wir beliebige Git-Commits per Referenz auswählen und auf den aktuellen HEAD
anwenden können. Wir verwenden diesen Befehl, um einen Commit aus einem Zweig auszuwählen und auf einen anderen anzuwenden.
Wann sollten wir den Befehl git cherry-pick
verwenden?
Obwohl nützlich, ist der Befehl git cherry-pick
nicht immer die beste Vorgehensweise. Der traditionelle git merge
-Befehl wird in manchen Szenarien eher bevorzugt.
Dennoch gibt es bestimmte Szenarien, in denen wir den Befehl ideal finden können. Lassen Sie uns einige besprechen.
Nehmen wir an, Sie arbeiten an einem Projekt mit mehreren Branches. Sie nehmen Änderungen an einem Zweig vor und stellen später fest, dass Sie im falschen Zweig ausgecheckt sind.
Da diese Änderungen nicht zu diesem Branch gehören, kannst du die Änderungen mit dem Befehl git cherry-pick
in den richtigen Branch verschieben.
Notieren Sie sich den Commit-Hash, wechseln Sie mit dem Befehl git checkout
zum richtigen Branch und führen Sie den cherry-pick
aus, wie unten dargestellt.
$ git cherry-pick <commit-id>
Der git cherry-pick
-Befehl ist auch ideal für die Zusammenarbeit im Team. Ein Projekt hat einen gemeinsamen Code zwischen den Frontend- und Backend-Komponenten.
Ein Entwickler kann mit dem Befehl git cherry-pick
Code vom anderen kopieren.
Wir verwenden auch den Befehl git cherry-pick
für Bug-Hotfixes. Angenommen, Sie haben mit der Arbeit an einer neuen Funktion in Ihrem Projekt begonnen und stellen dabei einen vorhandenen Fehler fest.
Sie können einen Commit erstellen, der den Fehler explizit behebt, und ihn in den Zweig main
herauspicken
. Der Befehl eignet sich auch ideal zum Wiederherstellen verlorener Commits.
den Befehl git merge
Zum Befehl git merge
gibt es nicht viel zu sagen. Es verbindet einfach den Commit-Verlauf von zwei Branches und erstellt einen Merge-Commit.
Indem Sie beide zusammenführen, können Sie Änderungen aus dem Zweig Entwicklung
in den Zweig Haupt
einbringen. Es ist eine zerstörungsfreie Methode, um Änderungen von einem Zweig zum anderen anstelle des Befehls git rebase
zu integrieren.
Zusammenführen ist ziemlich einfach. Alles, was Sie tun müssen, ist, zu dem Zweig zu wechseln, den Sie zusammenführen möchten, und den Befehl auszuführen. Hier ist ein Beispiel.
Angenommen, wir haben einige Commits im Zweig Entwicklung
, die für den Zweig Haupt
relevant sind, können wir diese Änderungen wie folgt in den Zweig Haupt
integrieren:
# Switch to the main branch
$ git checkout main
# Merge the two
$ git merge development
Unterschied zwischen git cherry-pick
und git merge
Wie wir gesehen haben, sind beide Befehle hilfreich, wenn Änderungen von einem Zweig in einen anderen integriert werden sollen. Der Unterschied besteht jedoch darin, wie wir die einzelnen Befehle verwenden.
Der Befehl git cherry-pick
ist ideal, um kleinere Teilmengen eines grossen Git-Repositorys zu sampeln. Es ist praktisch, wenn Sie bestimmte Commits zwischen Zweigen verschieben möchten.
Dagegen ist der Befehl git merge
ideal für grosse Mengen an Commits. Es wäre nicht ideal, zwanzig Commits von einem Branch zum anderen herauszupicken
.
Der Befehl git merge
ist für ein solches Szenario besser geeignet.
Davon abgesehen hat jeder Befehl seine Vor- und Nachteile. Lassen Sie uns einige besprechen.
Der Befehl git cherry-pick
reduziert die Unordnung in unseren Repositories im Gegensatz zum Befehl git merge
, der immer einen überflüssigen Merge-Commit einführt.
Auf der anderen Seite kann die Verwendung des Befehls git cherry-pick
zu doppelten Commits führen und andere Entwickler verwirren, insbesondere wenn Sie ein gemeinsames Git-Repository haben.
Der Befehl git merge
hilft Ihnen, Änderungen schneller zu integrieren, insbesondere bei vielen Commits. Der Nachteil dieses Commits ist die Möglichkeit, auf Zusammenführungskonflikte zu stoßen.
Natürlich können Sie mit dem Befehl git cherry-pick
auf Zusammenführungskonflikte stoßen, aber mit dem Befehl git merge
werden Sie wahrscheinlich auf mehr Konflikte stoßen, je mehr Commits ausgeführt werden.
Die Befehle git merge
und git cherry-pick
sind nützlich, um Änderungen von einem Branch in einen anderen in Git einzuarbeiten. Der Unterschied besteht darin, wann und wie die einzelnen Befehle verwendet werden.
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