Cherry-Pick eine Commit in Git
-
Wann sollte man die Git
cherry-pick
verwenden? -
Git
cherry-pick
-Befehl - Gelöschte Commits wiederherstellen und Änderungen in Git rückgängig machen
cherry-pick
ist ein sehr nützlicher Befehl, der in verschiedenen Szenarien bei der Verwendung von Git erstaunlich und sehr hilfreich ist. In Git ermöglicht uns der cherry-pick
-Befehl, sortierte und getrennte Commits aus einem Branch in den aktuellen HEAD
-Branch zu kombinieren.
Wir können es so erklären, dass wir einen Commit aus einem bestimmten Zweig auswählen und ihn in einen anderen Zweig übertragen. Dieser Befehl kann nützlich sein, um Änderungen in diesem Zweig rückgängig zu machen. Zum Beispiel, wenn ein Commit versehentlich in den unerwünschten Zweig verschoben wird. Wir können zum gewünschten Zweig wechseln und die Rosinen herauspicken, die sich versehentlich auf den gewünschten Zweig festlegen, wo er sein sollte.
Wann sollte man die Git cherry-pick
verwenden?
Git cherry-pick
ist ein mächtiges Werkzeug, kann aber nicht immer die beste Wahl sein. Wir sollten cherry-pick
nicht üblich anwenden, da es leicht zu doppelten Commits führt, wenn wir mit diesem Befehl einen Commit in unseren HEAD
-Zweig kombinieren.
Git ist dafür verantwortlich, einen neuen Commit mit den gleichen Anforderungen wie beim letzten Commit zu erstellen. Git cherry-pick
sollte in einem Szenario verwendet werden, in dem wir die neuen Änderungen fälschlicherweise auf den falschen Zweig übertragen und sie in das Remote-Repository verschoben haben.
Nachdem wir es in das Remote-Repository gepusht haben, stellen wir fest, dass das gepushte Commit nicht auf einen bestimmten Zweig gepusht werden musste, also müssen wir den Git-Befehl cherry-pick
verwenden, um dieses Commit anhand der eindeutigen ID auszuwählen und an das richtige zu übertragen Ast.
Wann immer wir die Möglichkeit haben, traditionelles Merge oder Rebase zum Kombinieren anzuwenden, sollten wir cherry-picking
in Betracht ziehen, da cherry-pick
für seltene Fälle reserviert werden muss, in denen Merge oder Rebase nicht anwendbar sind.
Git cherry-pick
-Befehl
Wir müssen nur den Commit angeben, den wir in unseren aktuellen HEAD
-Zweig aus dem Commit, den wir im falschen Zweig durchgeführt haben, kombinieren möchten. et12x8iu
ist die Commit-ID, die wir angeben müssen, um ihn im aktuellen Zweig zu kombinieren.
Unten ist der Befehl, der das falsche Commit auf das neue letzte Commit überträgt.
$ git cherry-pick et12x8iu
Auf diese Weise werden wir bestimmte Revisionen direkt in unseren derzeit ausgecheckten Zweig übernehmen.
Nehmen wir an, wir brauchen weiterhin einige Modifikationen in unserer Arbeit. In diesem Fall können wir auch den Git-Befehl verwenden, um nur die Änderungen des Commits in unsere Hauptarbeitskopie aufzunehmen, ohne sie direkt zu committen. Auf diese Weise gelangt es direkt in eine modifizierte Arbeitskopie, und wir können die Dateien gemäß unseren Anforderungen ändern.
Es folgt der Befehl, um den falschen Commit in unser Arbeitsverzeichnis zu bekommen:
$ git cherry-pick et12x8iu --no-commit
Gelöschte Commits wiederherstellen und Änderungen in Git rückgängig machen
Manchmal hat ein feature branch
einige Komplikationen und wird nicht zu einem current branch
kombiniert, und manchmal kann ein Pull-Request aufgrund unterschiedlicher Arbeitsanforderungen ohne Zusammenführung anhalten.
Die Besonderheit von Git ist, dass es diese Commits nie aus den Augen verliert, und durch einige Befehle wie git log
und git reflog
können sie erneut verfolgt und an ihren Platz zurückgepflückt werden, wo sie ursprünglich sein sollten Ort.
Wir können sagen, dass die Option cherry-pick
nicht anstelle von git merge
oder git-rebase
verwendet werden sollte. Der Befehl git log
kann angewendet werden, um zu helfen, Commits für die Rosinenauswahl in dem bestimmten Zweig auszusortieren.
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