Привет, это Глеб Котовский!
Добро пожаловать в мою серию статей о Git! Сегодня мы разберём Git Stash — мощный инструмент для управления незавершённой работой.

Когда вы работаете над несколькими задачами одновременно, это похоже на игру “убей крота”. Представьте: вы погружены в новую фичу, и вдруг — срочный баг! Именно здесь Git Stash становится вашим спасителем. В этой статье я покажу, как эффективно использовать Stash, и вы удивитесь, как раньше обходились без него.
Что такое Git Stash?
Git Stash — это способ временно сохранить незакоммиченные изменения. Представьте его как черновик для незавершённой работы. Когда вы “прячете” изменения, Git сохраняет модифицированные файлы и очищает рабочую директорию. Это позволяет переключать ветки или обновлять код без риска потерять текущий прогресс.
3 причины использовать Stash
1) Срочные задачи
Типичный сценарий: вы пишете код → делаете add/commit → пушите. Но что если нужно срочно переключиться на другую задачу, а коммит делать рано?


Вот где Stash спасает от незавершённых коммитов!
2) Эксперименты
Хотите попробовать новую идею, но не желаете засорять историю? Спрячьте текущие изменения и экспериментируйте свободно.
3) Чистая история
Избегайте коммитов вроде “WIP” (Work In Progress), сохраняя историку репозитория осмысленной.
Использование Git Stash
Базовое сохранение
Спрятать изменения:
git stash
Добавить неотслеживаемые файлы:
git stash -u
Включить игнорируемые файлы:
git stash -a
Просмотр “тайников”
Список сохранённых изменений:
git stash list
Пример вывода:
stash@{0}: WIP on feature-branch: 5d9a9cc Initial commit
Извлечение изменений
Вернуть последние изменения (без удаления из stash):
git stash apply
Вернуть конкретный “тайник”:
git stash apply stash@{1}
Управление хранилищем
Удалить конкретный stash:
git stash drop stash@{0}
Очистить всё хранилище:
git stash clear
Извлечь с удалением
Вернуть и сразу удалить из списка:
git stash pop
Именованный stash
Добавить описание для ясности:
git stash push -m "Рефакторинг модуля оплаты"
Практические сценарии
Срочный фикс бага
# Текущая работа
git stash
# Переключение на срочную задачу
git checkout main
# Фиксим баг, коммитим
git commit -m "Critical hotfix"
# Возвращаемся к задаче
git checkout feature-branch
git stash pop
Эксперименты
git stash
# Пробуем радикальную идею
# Если не понравилось:
git stash pop
Заключение
Git Stash - это бесценный инструмент для разработчиков, предоставляющий удобный механизм для управления незавершенными работами без загромождения истории коммитов. Эффективное использование тайников позволит вам не отвлекаться на выполнение задач и не бояться потерять изменения.
Так что в следующий раз, когда вы окажетесь в затруднительном положении, помните: не стоит откладывать работу в долгий ящик. В конце концов, иногда можно просто спрятать!