Einführung in GIT Cherry-Pick
In diesem Artikel werden wir uns ausführlich mit dem GIT Cherry-Pick befassen. Es gibt viele Programmierer, die aus verschiedenen Teilen der Welt an der gleichen Softwareentwicklung arbeiten. Wie werden dann die Codes verwaltet? Wie lassen sie andere verstehen, welche Änderungen sie vorgenommen haben? Wie werden die Codes festgeschrieben und verschiedene Versionen gepflegt? Wie werden die Codes zusammengeführt?
Um diese Probleme zu lösen, kam GIT in die Entwicklungswelt. GIT ist ein hervorragendes Quellcodeverwaltungssystem (SCM) und verteiltes Versionskontrollsystem. GIT wurde von Linux Torvald erstellt, der Person, die den Linux-Kernel entwickelt hat. Offensichtlich handelt es sich um ein Open-Source-Tool, mit dem jeder Programmierer von jedem Ort der Welt aus zum Erstellen einer Software beitragen kann.
GIT hat viele Funktionen. Es kann mehrere Zweige haben. Ein Entwickler kann Codes schreiben, nachdem er seinen eigenen Zweig im lokalen System erstellt und mit dem Hauptzweig oder anderen Zweigen des entfernten GIT-Repositorys zusammengeführt hat.
Was ist GIT Cherry-Pick?
Stellen Sie sich vor, in der Projektarbeit wird ein Skript zur Geschichte und Entwicklung von Mobiltelefonen geschrieben. Es arbeiten also viele Leute am selben Projekt und alle arbeiten separat. Am Ende wird jedoch jedes Skript zusammen kompiliert.
Jetzt schreibt Mitglied A über Apple-Telefone und merkt plötzlich, dass es besser sein kann. Also informierte er die anderen Teammitglieder, die am selben Projekt arbeiten. Ein anderes Mitglied X teilte ihm mit, dass er ein Skript für Android-Telefone schreibt, und bat Mitglied A, einen Blick darauf zu werfen.
Dann schaute Mitglied A in das Skript des Teamkollegen und stellte fest, dass einige der Teile identisch sind, mit einigen Änderungen, die wirklich gut sind. Deshalb hat er diese Änderungen ausgewählt und in sein eigenes Skript eingefügt. Dies ist das gleiche, was cherry-pick in der Software-Codierungsbranche in GIT genannt hat.
Git-Cherry-Pick ist ein mächtiger Git-Befehl, und Cherry-Picking ist ein Vorgang, bei dem ein Commit aus einem Zweig abgerufen und auf einen anderen Zweig angewendet wird. In einfachen Worten, es kann mehrere Zweige geben, in denen Entwickler ihre Codes festlegen. Nun sollte ein Entwickler seine Codes in Zweigstelle A festschreiben, er hat jedoch versehentlich die Codes in Zweigstelle B festgeschrieben. Dieses Mal kann Cherry-Pick das Festschreiben auf den richtigen Zweig zurückschalten.
Verwenden Sie den folgenden Befehl (im Unix-System), um verschiedene Optionen für git-cherry-pick zu kennen.
Befehl:
$man git-cherry-pick
Die Syntax für den Befehl cherry-pick,
Syntax:
git cherry-pick (–edit) (-n) (-m parent-number) (-x)
Wann verwenden wir GIT Cherry-Pick?
Git-Cherry-Pick ist ein nützliches Werkzeug, jedoch nicht immer eine bewährte Methode. Git-Cherry-Pick kann in den folgenden Szenarien verwendet werden,
- Um es zu korrigieren, wenn ein Commit versehentlich in einem anderen Zweig ausgeführt wurde.
- Bevorzugte traditionelle Verschmelzungen
- Übernehmen der Änderungen in ein vorhandenes Commit.
- Doppelter Commit
- Bugfixing
Wie funktioniert GIT Cherry-Pick?
Ein Fehler im Code in der Produktionsumgebung und ein Fix müssen implementiert werden. Sobald die Änderung implementiert und ein Fehler behoben wurde, ist es jetzt an der Zeit, diese Codeänderung wieder in die Entwicklungsumgebung zu übernehmen, damit der Fehler in der Produktionsumgebung in Zukunft nicht mehr immer wieder auftritt.
Die erste Option ist ein einfaches Zusammenführen von Git und es ist eine ideale Lösung, wenn es funktioniert. Es gibt jedoch auch andere Änderungen in der Produktionsumgebung, die beim Zusammenführen nicht wieder in die Entwicklungsumgebung übernommen werden können. Und in diesem Fall ist Cherry-Pick die richtige Option.
Cherry-Pick bringt das Commit, das nur zur Fehlerbehebung gemacht wurde. Die anderen Commits werden nicht ausgewählt.
Hier ist eine Illustration,
Abb. 1: G und H sind die Commits der Produktionsbranche. A bis F Development Branch verpflichtet. Ein Problem wurde in der Produktionsbranche gefunden. In H commit wird ein Fix entwickelt, der im Entwicklungszweig angewendet werden muss, Commit G muss jedoch nicht angewendet werden.
Abb. 2: Jetzt wird Commit H für den Entwicklungszweig ausgewählt und das resultierende Commit ist H '. Commit-G-Änderungen werden nicht in den Entwicklungszweig aufgenommen.
Wie verwende ich GIT Cherry-Pick mit Beispiel?
Angenommen, wir haben zwei Verzweigungen (master und new_feature) (Befehl zum Anzeigen der Verzweigung branch-git)
Wir haben versehentlich ein Commit (Highlighted) im Zweig new_feature durchgeführt. (Befehl zum Anzeigen des Committed Logs-Git-Protokolls)
Es sollte sich jedoch nur in der Hauptniederlassung befinden. Kopieren Sie zuerst den markierten SHA in einen Notizblock.
Jetzt verwenden wir den Befehl git-cherry-pick, um dieses Commit in den Hauptzweig zu verschieben. Zuvor müssen wir jedoch in den Hauptzweig wechseln (Befehl zum Wechseln des Befehls branch-git checkout < Zweigname > ).
Jetzt können wir sehen, dass das gleiche Commit im Hauptzweig verfügbar ist (Befehl used-git log).
Weitere Beispiele für Git Cherry-Pick-Befehle finden Sie unter folgendem Link:
https://git-scm.com/docs/git-cherry-pick
Wichtige Dinge zu beachten
Drei Dinge müssen beachtet werden, wenn Sie Cherry-Pick verwenden und in einem Team arbeiten.
1. Festschreibungsnachricht standardisieren: Es ist besser, die Festschreibungsnachricht standardisieren und -x zu verwenden, wenn Sie eine Auswahl aus einem öffentlichen Zweig treffen.
git cherry-pick -x
Es wird zukünftig vermieden, Konflikte zu verschmelzen.
2. Kopieren Sie die Notizen: Manchmal haben einige von cherry-pick Notizen, und wenn wir cherry-pick ausführen, werden die Notizen nicht kopiert. Daher ist es besser, es zu verwenden.
git notes copy
3. Wählen Sie mehrere Commits aus, wenn sie nur linear sind: Wir möchten mehrere Commits wie G, H (Abb. 1) auslesen. Wenn sie linear sind, verwenden Sie nur den folgenden Befehl.
git cherry-pick G^..H
Fazit
Angenommen, wir möchten ein bestimmtes Commit aus einem anderen Zweig abrufen und auf den aktuellen Zweig anwenden. Es werden folgende Schritte empfohlen:
1. Finden Sie den Commit-Hash, der zuerst ausgewählt werden muss.
2. Wechseln Sie in die Zielniederlassung.
3. git cherry-pick -x
Lösen Sie die Konflikte, wenn sie auftreten. Wenn das ursprüngliche Commit Notizen enthält, müssen diese kopiert werden.
git notes copy
Empfohlene Artikel
Dies ist eine Anleitung zu GIT Cherry-Pick. Hier besprechen wir seine Arbeitsweise und die Verwendung von Git Cherry-Pick mit Beispielen im Detail. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -
- Git Tools
- Git-Terminologie
- Git Checkout-Tag
- Was ist Git Branch?