Ich habe Probleme, einen Kirschpickel auszuführen. Auf meinem lokalen Computer bin ich derzeit in meinem "Master" -Zweig. Ich möchte ein Commit aus einem anderen Zweig namens "Zebra" auswählen. Der "Zebra" -Zweig ist ein entfernter Zweig.
Also git status:
# On branch master
nothing to commit (working directory clean)
Ok, jetzt versuche ich, das gewünschte Commit auszuwählen:
git cherry-pick xyz
fatal: bad object xyz
Dabei ist "xyz" die Signatur des Commits, an dem ich interessiert bin, das auf dem Zweig "Zebra" passiert ist.
Die erste offensichtliche Frage ist also, warum Git das Commit, auf das ich mich beziehe, nicht finden kann. Ich verstehe nicht wirklich, wie das überhaupt funktioniert, um ehrlich zu sein. Speichert git so etwas wie eine Datenbank mit Commits lokal in meinem Arbeitsverzeichnis für alle anderen Zweige? Wird beim Ausführen des Befehls cherry-pick die lokale Datenbank durchsucht, um das Commit zu finden, von dem ich spreche?
Da "Zebra" ein entfernter Zweig ist, dachte ich, ich habe seine Daten nicht lokal. Also habe ich die Filialen gewechselt:
git checkout zebra
Switched to branch 'zebra'
Jetzt kann ich hier auf meinem lokalen Computer sehen, dass die Dateien im Verzeichnis den Status von Zebra korrekt wiedergeben. Ich wechsle zurück zum Master und versuche erneut, die Auswahl zu treffen (in der Hoffnung, dass die Festschreibungsdaten jetzt verfügbar sind), aber ich habe das gleiche Problem.
Ich habe ein grundlegendes Missverständnis darüber, was hier vor sich geht. Jede Hilfe wäre großartig.