2012-05-31 2 views
164

Я только что запечатал в проекте, который я не совершал. Есть ли способ вернуться в государство, прежде чем я спрятался? Как я могу это сделать? Я закрыл терминал, и мой ноутбук закрыт. Я сделал некоторые исследования, и кажется, что нет никакого способа сделать это.Отменить git stash

+3

Просто применить тайник ... – CrimsonDiego

+2

ли ваши исследования включают в себя, глядя на [документации мерзавца-притон] (HTTP: // git-scm.com/docs/git-stash), в котором объясняется, как это сделать? –

+0

Связанный пост [здесь] (https://stackoverflow.com/q/19003009/465053). – RBT

ответ

337

Вы можете просто запустить:

git stash pop 

и он будет unstash изменения.

Если вы хотите сохранить состояние файлов (постановка против работать), используйте

git stash apply --index 
+7

Ну, не совсем. Он не сбрасывает то, что находится в промежуточном каталоге, поэтому вам придется все это перезагрузить (что может раздражать, если вы только что сделали сложный git add -p – Nick

+0

Спасибо! Вы сэкономили много времени! – Lecko

+0

Didn Я работаю для меня. У меня есть ошибка: 'mymodule/MyClass.java: требуется merge - невозможно обновить индекс'. Избежать ручного слияния была именно моя цель при использовании' git stash pop' ... – TanguyP

59

git stash list в список ваших спрятанных изменений.

git stash show, чтобы увидеть, что n находится в нижеследующих командах.

git stash apply, чтобы применить последний тайник.

git stash apply [email protected]{n} применить старый кошелек.

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

+1

также «git stash show» после «git stash list», чтобы закончить этот отличный ответ и лучше определить, что заменить n. У меня есть материал, спрятанный из файлов, которые больше не существуют! – JimLohse

13

Это также приведет к восстановлению промежуточного каталога:

git stash apply --index 
Смежные вопросы