Как git stash pop специфический stash в 1.8.3?
Я только что обновил Git. Я на git версии 1.8.3.
Этим утром я попытался развернуть изменение 1 глубоко в стеке.
Я побежал git stash pop stash@{1}
и получил эту ошибку.
fatal: ambiguous argument 'stash@1': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Я пробовал около 20+ вариантов, а также с помощью apply
вместо pop
без успеха. Что изменилось? Кто-нибудь еще сталкивался с этим?
10 ответов
Как указывалось ранее, фигурные скобки могут потребовать экранирования или цитирования в зависимости от вашей ОС, оболочки и т. Д.
Посмотрите " stash @ {1} является неоднозначным?" Для некоторых подробных подсказок о том, что может идти не так, и как обойти это в различных оболочках и платформах.
git stash list
git stash apply stash@{n}
Если вы хотите быть уверены, что не нужно иметь дело с кавычками для синтаксиса stash@{x}
, используйте Git 2.11 (4 квартал 2016 года)
См. Коммит a56c8f5 (24 октября 2016 г.) от Aaron M Watson ( watsona4
)
(Объединено Юнио С Хамано - gitster
- в коммите 9fa1f90, 31 октября 2016 г.)
stash
: разрешить ссылки на тайники только по индексуВместо ссылки "
stash@{n}
"явно, сделать возможным просто ссылаться как"n
".
Большинство пользователей ссылаются на тайники только по их положению в стеке тайников (что я называю здесь "индексом").Синтаксис для типичного тайника (
stash@{n}
) немного раздражает и его легко забыть, а иногда и трудно избежать в сценарии.Из-за этого желательна возможность делать вещи с тайником, просто ссылаясь на индекс.
Так:
git stash drop 1
git stash pop 1
git stash apply 1
git stash show 1
В Windows Powershell я запускаю это:
git stash apply "stash@{1}"
Как отметил Роберт, кавычки могут помочь вам:
git stash pop stash@"{1}"
Если ничего из вышеперечисленного не сработало, кавычки вокруг самого тайника могут сработать:
git stash pop "stash@{0}"
У меня установлен 2.22, и это сработало..
git stash pop --index 1
Версия 2.11+ использует следующее:
git stash list
git stash apply n
n - номер тайника @{12}
Сначала проверьте список:-
git stash list
скопируйте индекс, который вы хотите получить из списка тайников
git stash pop stash@{index_number}
например.:
git stash pop stash@{1}
Я видел этот ответ несколько раз в этом списке, но просто для ясности, по крайней мере, с версии git 2.33.0,
git stash pop stash@{n}
. _ действителенНет необходимости бежать.