PassFront
  1. PassFront
  2. База знаний
  3. История и отмена изменений

В каких случаях используется 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

Другие вопросы раздела