Скасуйте скриньку 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.