logo

Git – Rosinenpickel

Idiot Rosinenpickerei In Git bedeutet es, einen Commit aus einem Zweig auszuwählen und ihn auf einen anderen Zweig anzuwenden. Dies steht im Gegensatz zu anderen Methoden wie z verschmelzen Und Überholen die normalerweise viele Commits in einen anderen Zweig anwenden.

Git Cherry-Pick ist genau so umbasieren , ein fortschrittliches Konzept und auch ein leistungsstarker Befehl. Es wird hauptsächlich verwendet, wenn Sie nicht den gesamten Zweig zusammenführen möchten, sondern einige der Commits wünschen.



Teilzeichenfolge Zeichenfolge Java

Wann sollte man Kirschpflücker verwenden?

Angenommen, ein Entwickler erkennt nicht, in welchem ​​Branch er sich gerade befindet, und legt versehentlich einen Commit für einen anderen Branch statt für den Hauptbranch fest. Um das Problem zu beheben, muss er zunächst rennen Git-Show , Speichern Sie dann den Commit, überprüfen Sie den Hauptzweig, wenden Sie dort einen Patch an und führen Sie einen Commit mit derselben Commit-Nachricht durch. All dies kann jedoch automatisch mit nur einem Befehl erledigt werden, d. h. Rosinenpickerei.

Zum besseren Verständnis sehen Sie sich das folgende Diagramm an:

Vor der Kirschernte



Vor der Kirschernte

Nach Cherry Pick

Nach Cherry Pick

Der Befehl für Cherry-pick lautet wie folgt:



git cherry-pick>

Hash festschreiben: Ein Commit-Hash ist eine eindeutige Kennung, die von Git generiert wird. Jeder Commit hat seinen eigenen Commit-Hash.

Notiz: Stellen Sie bei der Verwendung dieses Befehls sicher, dass Sie sich in dem Zweig befinden, in dem Sie das Commit anwenden möchten.

Wie benutzt man Rosinenpickerei?

Hier ist die Schritt-für-Schritt-Erklärung der Verwendung des Befehls „Cherry-Pick“ im unten erstellten Projekt, die Schritt für Schritt wie folgt dargestellt wird:

Schritt 1: Öffnen des Git Bash und Erstellen eines neuen Projekts mit dem Namen Probe und Initialisieren des Repos mit dem Es ist heiß Befehl.

Typkonvertierung und Casting in Java

Schritt 2: Ein ... Erstellen ' .txt' Datei verwenden Wir Befehl zum Projekt, sagen wir eine Indexdatei, und fügen Sie sie zu unserem Beispielprojekt hinzu, führen Sie einen Commit durch und schreiben Sie eine Commit-Nachricht, bevor Sie die Eingabetaste drücken.

Notiz: Nach dem Ausführen des Wir Geben Sie den Befehl „:wq“ ein, um die Datei zu speichern und zu beenden.

Man kann Ihr Commit überprüfen Git-Protokoll Befehl einfach:

Hashset vs. Hashmap

Schritt 3: Nehmen wir nun an, wir haben zwei Versionen, also erstellen Sie zwei verschiedene Zweige, indem Sie die verwenden Git-Zweig Befehl und wechseln Sie zu einem Zweig, sagen wir 2, indem Sie verwenden git checkout Befehl.

Notiz: Sie können alle Zweige einfach anzeigen, indem Sie den Befehl „git branch“ ausführen, wie im folgenden Diagramm gezeigt.

Schritt 4: Angenommen, Sie möchten an einer neuen Funktion arbeiten, also erstellen und fügen Sie eine neue Feature-Datei hinzu, beispielsweise mit feature.txt Wir Und hinzufügen Befehl bzw. wie unten gezeigt. Anschließend übernehmen Sie Ihre Änderungen mit einer Commit-Nachricht.

Sie können Ihr Commit mit dem Git-Log-Befehl überprüfen, wie unten gezeigt:

Es zeigt bei unserem ersten Commit deutlich, wo sich unser Zweig 1 befindet, und in Zweig 2 ist er weiter nach vorne gerückt, und wir arbeiten derzeit an unserem Feature in Zweig 2

Schritt 5: Angenommen, wir haben einen Fehler in unserer Funktion gefunden und erfahren, dass derselbe Fehler auch in unserem 1. Zweig vorhanden ist.

Und jetzt versuchen wir, einen Fehler oder ein Problem zu beheben, wie unten gezeigt, indem wir eine fix.txt-Datei hinzufügen. Nehmen wir an, wir fügen sie zum aktuellen Zweig, d. h. 2, hinzu und übernehmen die erforderlichen Änderungen.

Pandas loc

Überprüfung unserer endgültigen Commits:

Schritt 6: Jetzt, Wir haben den Fehler in Zweig 2 behoben, aber wir müssen diesen Fix auch zu unserem Zweig 1 hinzufügen, aber wir möchten diesen Zweig 2 nicht mit unserem Zweig 1 zusammenführen, da die Arbeit an der Funktion möglicherweise noch im Gange ist.

Daher können wir in diesem Szenario dieses bestimmte Commit auswählen. Kopieren Sie dazu einfach die Hash Wert Im obigen Diagramm hervorgehoben, wechseln Sie dann mit checkout zu Zweig 1 und verwenden Sie dann den Befehl Rosinenpickerei und fügen Sie den Hash ein, den wir gerade kopiert haben.

Wie oben deutlich zu sehen ist, stellen wir fest, dass wir vorher nur index.txt hatten, bevor wir Rosinen auswählen, aber jetzt haben wir auch die Datei fix.txt in unserem ersten Zweig.

Wenn wir jetzt versuchen, es zu überprüfen git log –oneline , werden wir sehen können, dass das Commit auch in Zweig 1 erfolgte.

Einige wichtige Anwendungsfälle von Cherry-Pick

Im Folgenden sind einige häufige Anwendungen von Cherry-Pick aufgeführt:

Beispiel einer Java-Klasse
  1. Wenn Sie versehentlich einen Commit in einem falschen Zweig durchführen, können Sie mit Cherry-Pick die erforderlichen Änderungen übernehmen.
  2. Angenommen, die gleiche Datenstruktur soll sowohl vom Frontend als auch vom Backend eines Projekts verwendet werden. Dann kann ein Entwickler Cherry-Pick verwenden, um das Commit auszuwählen und es für seinen/ihren Teil des Projekts zu verwenden.
  3. Wenn ein Fehler entdeckt wird, ist es wichtig, den Endkunden so schnell wie möglich eine Lösung zu übermitteln.
  4. Es kann vorkommen, dass ein Komponentenzweig veraltet ist und nicht in den Hauptzweig konvergiert wird und die Anfrage möglicherweise geschlossen wird. Da Git diese Commits jedoch nie verliert, kann er ausgewählt werden, und er wäre wieder verfügbar.

Nachteile der Verwendung von Cherry Pick

Cherry-Picking sollte nicht immer verwendet werden, da es zu Kopier-Commits und zahlreichen Situationen führen kann, in denen Cherry-Picking funktionieren würde. Herkömmliche Zusammenführungen sind in jeder Hinsicht beliebt. Auch in der Situation, in der die Commits von zwei oder mehr Zweigen ähnliche Codezeilen mit verschiedenen Substanzen aktualisieren und einen Commit für den anderen Zweig auswählen, führt dies ebenfalls zu Konflikten.

Abschluss

Der Cherry-Pick-Befehl von Git ist ein leistungsstarkes Tool zum selektiven Anwenden bestimmter Commits zwischen Zweigen. Es eignet sich hervorragend zum Beheben von Fehlern und zum Teilen von Code, aber übermäßiger Gebrauch kann zu Problemen führen, insbesondere wenn Commits dieselben Codezeilen berühren. Setzen Sie es also mit Bedacht ein, um einen sauberen und effizienten Codeverlauf aufrechtzuerhalten.