Das Problem ist, dass ein Stash besteht aus zwei oder drei Commits. Beim Speichern wird der geänderte Arbeitsbaum in einem Commit, dem Index in einem Commit und (bei Verwendung des Flags --include-untracked
) in allen nicht verfolgten Dateien eines dritten Commits gespeichert.
Sie können dies sehen, wenn Sie gitk --all
verwenden und ein Versteck machen.
[email protected]{0}
zeigt auf die commit, dass der Arbeits Baum enthält.
Sie können jedoch cherry-pick aus, dass begehen, wenn Sie
tun
git cherry-pick "[email protected]{0}" -m 1
Der Grund, dass cherry-pick
denkt, dass der Vorrat eine Zusammenführung ist, und muss somit der -m 1
Parameter ist, dass das Versteck begehen multpile Eltern hat, wie Sie in der Grafik sehen können.
Ich bin mir nicht sicher, was genau Sie durch Rosinenpicken erreichen möchten. Eine mögliche Alternative besteht darin, einen Zweig aus dem Versteck zu erstellen. Übernehmen Sie dort Änderungen und fügen Sie sie zu Ihrem aktuellen Zweig zusammen.
git stash branch stashchanges
git commit -a -m "changes that were stashed"
git checkout master
git merge stashchanges
>> Ich bin mir nicht sicher, was genau Sie durch Rosinenpickerei erreichen möchten? - In meinem Fall wäre eine einfache Zusammenführung in Ordnung, indem Sie stash apply/pop ausführen. Aber ich habe mich gefragt, ob ich ein paar Änderungen aus den verdeckten Änderungen herauspicken kann. Danke für Ihre Antwort. –