Ich versuche Informationen über meinen Vorrat zu bekommen, aber Git sagt mir das stash@{0}
und stash@{1}
ist mehrdeutig. git stash list
funktioniert gut und .git/logs/refs/stash
scheint den entsprechenden Inhalt zu haben (nicht, dass ich ein Experte für Git-Interna bin).
% git stash list
stash@{0}: On master: two
stash@{1}: On master: one
% git stash show stash@{1}
fatal: ambiguous argument 'stash@1': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
Einfach git stash show
funktioniert einfach gut. Warum werden die Namen, git stash list
die mir geben, als mehrdeutig angesehen?
stash
, der den Fehler verursachte.stash
, die den Fehler verursachte!Antworten:
Deine Muschel frisst deine geschweiften Klammern, also
stash@{1}
sieht Git , während du sagst ,stash@1
und das macht keinen Sinn. Zitieren Sie das Argument (verwenden Siegit stash apply "stash@{1}"
odergit stash apply stash@"{1}"
; das Zitieren in beide Richtungen funktioniert) oder konfigurieren Sie Ihre Shell so, dass geschweifte Klammern nur dann erweitert werden, wenn ein Komma zwischen ihnen steht (zsh kann so oder so konfiguriert werden, bash erweitert nur geschweifte Klammern mit Komma oder Bereich zwischen ihnen, andere Muscheln können sich auf die eine oder andere Weise verhalten.quelle
(git stash drop stash@`{1`})
Hallo, mir ist das Gleiche passiert. Der einfachste Weg, dies zu beheben, war:
Ich benutze eine Windows Git Shell.
quelle
git stash apply "stash@{2}"
Wenn Sie diesen Fehler haben, während Sie in Emacs mit Magit unter Windows arbeiten (wie ich),
hoffe ich, dass diese schnelle Lösung Ihnen hilft:
Dies wird
{}
in einem dritten Parameter zitiert, in("stash", "cmd", "stash@{0}")
dem von ausgeführt wirdmagit-run-git
quelle
Für zsh-Benutzer:
quelle
Setzen Sie einfach die Stash-ID zwischen einfache Anführungszeichen:
quelle