Скасуйте скриньку git


335

Я щойно зробив приховування в проекті, якого я не взяв на себе. Чи є спосіб повернутися до штату до того, як я сховався? Як я міг це зробити? Я закрив термінал, і мій ноутбук вимкнено. Я провів деякі дослідження і, здається, немає способу зробити це.


Відносяться пост тут .
RBT

Відповіді:


651

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

git stash pop

і це зніме ваші зміни.

Якщо ви хочете зберегти стан файлів (поетапно порівняно з робочими), використовуйте

git stash apply --index

10
Ну, не зовсім. Він не скине те, що є в довідковому каталозі, тому вам доведеться перезавантажити все це (що може дратувати, якщо ви тільки що зробили складний git add -p
Nick

Не працювало для мене. Я отримав повідомлення про помилку: mymodule/MyClass.java: needs merge - unable to refresh index. Уникнення ручного злиття було саме моєю метою при використанні git stash pop...
TanguyP

Врятувало мені життя. Я, хоча всі мої зміни вже пішли, і потрібно знову все. Спасибі
Анкіт Шах

@TanguyP, тож яким було ваше врешті рішення?
theonlygusti

119

git stash list щоб перелічити свої сховані зміни.

git stash showщоб побачити, що nв наведених нижче командах.

git stash apply застосувати останню скриньку.

git stash apply stash@{n} застосувати старішу скриньку.

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


1
також "git stash show" після "git stash list" лише для того, щоб закріпити цю чудову відповідь і краще визначити, чим замінити n. Виявляється, у мене є речі, сховані з файлів, які вже не існують!
JimLohse

15

Це також відновить каталог інсценізації:

git stash apply --index
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.