Git Cherry-Pick vs. Merge-Workflow

John Wachira 20 Juni 2023
  1. den git cherry-pick-Befehl
  2. den Befehl git merge
  3. Unterschied zwischen git cherry-pick und git merge
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 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 Cherry-Pick

Verwandter Artikel - Git Merge