Я только что обновил Git. Я на Git версии 1.8.3.
Этим утром я попытался развернуть изменение 1 глубоко в стеке.
Я побежал git stash pop stash@{1}
и получил эту ошибку.
fatal: неоднозначный аргумент 'stash @ 1': неизвестная ревизия или путь не в рабочем дереве. Используйте '-', чтобы отделить пути от ревизий, например: 'git [...] - [...]'
Я попытался около 20+ вариаций на это , а также использовать apply
вместо pop
безуспешно. Что изменилось? Кто-нибудь еще сталкивался с этим?
git stash pop 1
: см. Мой ответ нижеОтветы:
работает с git версии 2.11
Оригинальный ответ, возможно помогающий отладить проблемы со старым синтаксисом, включающим экранирование оболочки:
Как указывалось ранее, фигурные скобки могут потребовать экранирования или цитирования в зависимости от вашей ОС, оболочки и т. Д.
Посмотрите " stash @ {1} является неоднозначным? " Для некоторых подробных подсказок о том, что может пойти не так, и как обойти это в различных оболочках и платформах.
git stash применить версию
источник
pop
конкретному тайнику, и эта командаapply
является тайником, а не выталкивает его. Разница в том, что pop одновременно применяет тайник к коду и удаляет сам тайник.git stash apply n
git stash apply n
Вам нужно избежать скобок:
источник
Если вы хотите быть уверенным, что вам не придется иметь дело с цитатами для синтаксиса
stash@{x}
, используйте Git 2.11 (4 квартал 2016 года)См. Коммит a56c8f5 (24 октября 2016 г.) Аарона М. Уотсона (
watsona4
) .(Слиты Junio C Hamano -
gitster
- в фиксации 9fa1f90 , 31 окт 2016)Так:
источник
На Windows Powershell я запускаю это:
источник
Как указал Роберт, кавычки могут помочь вам:
источник
Если ничего из вышеперечисленного не сработало, кавычки вокруг самого тайника могут сработать:
источник
У меня установлен 2.22, и это сработало ..
источник
Версия 2.11+ использует следующее:
n - это тайник @ {12}
источник
Сначала проверьте список: -
скопируйте индекс, который вы хотите получить из списка тайников
например.:
источник