Właśnie zaktualizowałem Gita. Jestem na Git w wersji 1.8.3.
Dziś rano próbowałem rozpakować zmianę 1 głęboko w stosie.
Uruchomiłem się git stash pop stash@{1}
i dostałem ten błąd.
fatal: dwuznaczny argument „stash @ 1”: nieznana wersja lub ścieżka nie znajduje się w działającym drzewie. Użyj „-”, aby oddzielić ścieżki od wersji, na przykład: „git [...] - [...]”
Próbowałem ponad 20 odmian tego, a także apply
zamiast tego pop
bezskutecznie. Co się zmieniło Czy ktoś jeszcze tego doświadczył?
git stash pop 1
: patrz moja odpowiedź poniżejOdpowiedzi:
działa od wersji git 2.11
Oryginalna odpowiedź, być może pomagająca w debugowaniu problemów ze starszą składnią obejmującą ucieczki powłoki:
Jak wskazano wcześniej, nawiasy klamrowe mogą wymagać ucieczki lub cytowania w zależności od systemu operacyjnego, powłoki itp.
Zobacz „ skrytka @ {1} jest niejednoznaczna? ”, Aby uzyskać szczegółowe wskazówki na temat tego, co może pójść nie tak i jak obejść to w różnych powłokach i platformach.
git stash stosuje wersję
źródło
pop
określonej skrytki, a to polecenieapply
jest skrytką, a nie wyskakuje. Różnica polega na tym, że pop zarówno stosuje skrytkę do kodu, jak i usuwa samą skrytkę.git stash apply n
git stash apply n
Musisz uciec z nawiasów klamrowych:
źródło
Jeśli chcesz mieć pewność, że nie będziesz musiał radzić sobie z cudzysłowami dla składni
stash@{x}
, użyj Git 2.11 (IV kwartał 2016 r.)Zobacz commit a56c8f5 (24 października 2016 r.) Autor: Aaron M. Watson (
watsona4
) .(Połączone przez Junio C Hamano -
gitster
- w commit 9fa1f90 , 31 października 2016)Więc:
źródło
W Windows Powershell uruchamiam to:
źródło
Jak zauważył Robert, znaki cudzysłowu mogą załatwić sprawę:
źródło
Jeśli żadna z powyższych czynności nie działa, znaki cudzysłowu wokół samej skrytki mogą być dla Ciebie przydatne:
źródło
Mam zainstalowany 2.22 i to działało ..
źródło
Wersja 2.11+ wykorzystuje następujące funkcje:
n to skrytka liczbowa {{}}
źródło
Najpierw sprawdź listę: -
skopiuj indeks, który chcesz wyskoczyć z listy skrytek
na przykład.:
źródło