В каких случаях используется stash в git?
История и отмена изменений
`git stash` временно убирает незакоммиченные изменения в отдельное хранилище и возвращает рабочую копию к последнему коммиту.
Когда пригождается
- Нужно срочно переключиться на другую ветку (хотфикс, ревью), а текущая работа не готова к коммиту.
- Нужно подтянуть свежие изменения (
git pull), а локальные правки мешают. - Хочется на минуту проверить, как код работал без ваших изменений.
Основные команды
git stash push -m "форма логина" # спрятать изменения с подписью
git stash list # список спрятанного
git stash pop # вернуть последнее и удалить из стека
git stash apply stash@{1} # вернуть конкретное, не удаляя
git stash push -u # спрятать вместе с неотслеживаемыми файламиНюансы
- По умолчанию новые (неотслеживаемые) файлы не прячутся — нужен флаг
-u. - Stash — это стек: долго хранить там работу неудобно, проще сделать WIP-коммит в ветке.
- При
popвозможен конфликт — тогда запись остаётся в стеке до ручного разрешения.
Коротко для собеседования
git stash — «карман» для незаконченной работы: прячет изменения, чтобы переключиться или обновиться, а потом вернуть их через pop или apply.
Подробнее: Pro Git — git stash