Ответ
Stash в Git — это временное хранилище, куда можно отложить незавершённые изменения, чтобы переключиться на другую задачу, не коммитя их. Полезен, когда нужно быстро переключить контекст, но нет желания создавать "грязный" коммит.
Основные команды:
git stash # сохранить изменения в stash
git stash pop # вернуть последние отложенные изменения и удалить их из stash
git stash list # показать список stash'ей
git stash apply # применить изменения из stash, но не удалять их
Пример:
# Работаем над feature, но срочно нужно пофиксить баг
git stash # откладываем текущие изменения
git checkout main # переключаемся на main
# исправляем баг, коммитим, пушим
git checkout feature
git stash pop # возвращаем отложенные изменения
Stash хранит изменения в виде WIP (Work In Progress) и позволяет легко вернуться к ним позже.
Ответ 18+ 🔞
А, слушай, про stash в гите — это ж как та самая заначка, куда ты срочно пихаешь всё своё барахло, когда мамка неожиданно заходит в комнату и кричит "наведи порядок, тут как у свиньи в хлеву!".
Вот ты сидишь, кодишь какую-то хуйню, уже пол-файла переписал, а тут — бац! — начальник орёт: "СРОЧНО ПОЧИНИ БАГ НА ПРОДАКШЕНЕ, ВСЁ Горит!". И коммитить твою полуготовую пиздопроёбину нельзя, и терять её неохота. Вот тут-то stash и выручает, как лучший друг-алкаш, который припрятал для тебя бутылку.
Основные заклинания, чтобы не облажаться:
git stash # Всё, что не закоммичено, — хуяк в тайник! Рабочая директория чистая.
git stash pop # Достал из тайника последнюю стопочку, выпил и выбросил фантик.
git stash list # Смотришь, сколько у тебя этих стопочек уже накопилось (часто бывает стыдно).
git stash apply # Достал, выпил, но фантик оставил на потом — вдруг ещё пригодится.
Живая картинка для твоего извилина:
# Кодишь какую-то ересь в ветке feature/костыль-на-костыле
git stash # Шифруешь доказательства! Теперь git status чист, как слеза младенца.
git checkout main # Перепрыгиваешь на main, как будто так и надо.
# Тушишь пожар, чинишь баг, коммитишь, пушишь — герой!
git checkout feature/костыль-на-костыле # Возвращаешься к своему бардаку.
git stash pop # И — оп-па! — весь твой творческий беспорядок снова на месте. Магия, блядь!
По сути, stash — это такие временные черновики, которые гитом аккуратно складываются в стопочку. Их можно накопить овердохуища, потом по одному доставать. Главное — не забыть про них, а то через месяц будешь смотреть в git stash list и охуевать: "А это что за хуйня? Я это писал?".