Cofnij skrytkę git

335

Właśnie zrobiłem zapas w projekcie, którego nie popełniłem. Czy jest jakiś sposób na powrót do stanu, zanim się schowałem? Jak mogłem to zrobić? Zamknąłem terminal i mój laptop jest wyłączony. Zrobiłem trochę badań i wydaje się, że nie ma sposobu, aby to zrobić.

sztolnia
źródło
Powiązany post tutaj .
RBT

Odpowiedzi:

651

Możesz po prostu uruchomić:

git stash pop

i uwolni twoje zmiany.

Jeśli chcesz zachować stan plików (etapowe vs. robocze), użyj

git stash apply --index
ziad-saab
źródło
10
Cóż, niezupełnie. Nie zresetuje tego, co jest w katalogu pomostowym, więc będziesz musiał to wszystko zatrzymać (co może być denerwujące, jeśli właśnie zrobiłeś skomplikowane dodawanie git -p
Nick
Nie działało dla mnie. Mam błąd: mymodule/MyClass.java: needs merge - unable to refresh index. Unikanie ręcznego łączenia było właśnie moim celem, gdy korzystałem z git stash pop...
TanguyP,
Uratowałem mi życie. Myślałem, że wszystkie moje zmiany już minęły i znów muszę wszystko robić. Dzięki
Ankit Shah
@TanguyP, więc jakie było Twoje rozwiązanie?
theonlygusti
119

git stash list aby wymienić swoje ukryte zmiany.

git stash showaby zobaczyć, co njest w poniższych poleceniach.

git stash apply zastosować najnowszą skrytkę.

git stash apply stash@{n} zastosować starszą skrytkę.

http://git-scm.com/book/en/Git-Tools-Stashing

OmnipotentEntity
źródło
1
także „git stash show” po „liście git stash”, aby dopełnić tę doskonałą odpowiedź i lepiej zidentyfikować, co zastąpić n. Okazuje się, że mam rzeczy ukryte z plików, które już nie istnieją!
JimLohse
15

Spowoduje to również przywrócenie katalogu pomostowego:

git stash apply --index
wisbucky
źródło