Mehrere Commits mit Cherry-Pick in Git

Abdul Jabbar 30 Januar 2023
  1. Unterschied zwischen Git merge und Git Cherry-Pick-Befehl in Git
  2. das Cherry-picking Bug-Fix Commit in Git
  3. Mehrfaches cherry-pick-Commit in Git
  4. Verwenden Sie den Befehl Rebase, um gewünschte Änderungen an einem bestimmten Zweig in Git auszuwählen
Mehrere Commits mit Cherry-Pick in Git

Nach Abschluss unserer Verzweigungsarbeiten müssen wir in der Regel nicht mehr in die bestehenden Dateien mergen.

Wir müssen oft ein paar bestimmte Commits aus verschiedenen Zweigen erhalten, anstatt sie alle in einem bestimmten Zweig zu bearbeiten. Aus diesem Grund wird in Git der Befehl git-cherry pick verwendet.

Unterschied zwischen Git merge und Git Cherry-Pick-Befehl in Git

git merge ist genauso wie der Befehl git cherry-pick. Der Befehl git cherry-pick wird verwendet, um Änderungen von einem anderen Zweig in unseren gewünschten Zweig zu integrieren.

Wenn wir den Befehl merge verwenden, dürfen wir normalerweise alle Änderungen, die im anderen Zweig vorgenommen wurden, in unseren gewünschten Zweig integrieren.

Aber auf der anderen Seite brauchen wir manchmal nur wenige Änderungen in unserer Wunschbranche. Und für diesen Zweck ist der Git-cherry-pick-Befehl die sicherste Option.

das Cherry-picking Bug-Fix Commit in Git

Cherry-picking lässt sich typischerweise so erklären, dass ein Bugfix auf die frühere Version unserer Software aktualisiert wird, was bedeutet, dass nur einige explizite Bugfix-Commits aus Hunderten von Bugfixes in einem bestimmten Zweig abgerufen werden.

Verwenden Sie dann in Zukunft aus irgendeinem Grund diesen bestimmten fehlerbeseitigten Commit. Diese Anweisung oder dieser Befehl wird hauptsächlich verwendet, wenn das Team einen wichtigen Fehler in der Produktions- oder Live-Web- oder Desktop-Anwendung beheben möchte.

Mit diesem Befehl bereitet das Team die Version vor und stellt sie in der Produktions- oder Live-Umgebung bereit.

Mehrfaches cherry-pick-Commit in Git

In einigen Fällen möchten wir uns für die Rosinenpickerei bei mehreren Commits gleichzeitig in verschiedenen Branches bewerben. Dann müssen wir zuerst beide Commits identifizieren und die folgenden Befehle darauf anwenden.

Danach kann das cherry-pick bei den mehreren Commits durchgeführt werden, indem die Punktnotation zwischen den Zweigen A und B verwendet wird, wie unten im folgenden Befehl gezeigt:

$ git cherry-pick A..B

Nach Anwendung dieses Befehls wird commit A nicht in den cherry-pick aufgenommen.

Um auch commit A zu assimilieren, können wir die folgende Syntax verwenden:

$ git cherry-pick A^..B
Notiz
Commit sollte in der perfekten Reihenfolge platziert werden. Commit A sollte älter sein als commit B. Wenn dies nicht in perfekter Ordnung ist, schlägt der verwendete Befehl fehl, und wir müssen ihn gemäß der oben angegebenen Bedingung verwenden.

Verwenden Sie den Befehl Rebase, um gewünschte Änderungen an einem bestimmten Zweig in Git auszuwählen

Wir haben eine andere Möglichkeit, die gewünschten Änderungen oder Commits in einem bestimmten Zweig auszuwählen, indem wir den Befehl rebase in Git verwenden. Wir können den Befehl mit der Option onto in dieser Methode rebase.

Wir können git rebase --onto in zwei Arten von Fällen verwenden:

  • Die erste Bedingung ist, dass wir einen Zweig haben, der seinen übergeordneten Zweig in einem Repository ersetzen möchte.
  • Zweitens wollen wir sofort einige Commits aus unserem derzeitigen Zweig in einem Repository entfernen.

Nehmen wir an, dass unser Zweig der Zweig ist, der bei D endet, und dies ist der gewünschte Zweig, auf den wir C-Y verschieben möchten.

git reset --hard Y

git rebase --onto A B

Es hilft uns, von dem bestimmten Punkt aus neu zu gründen oder uns auf das gewünschte Commit festzulegen. Wir können vollständig verwalten, was und wo in einem bestimmten Branch-Commits rebasiert werden soll.

Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

Verwandter Artikel - Git Commit