Git stash Ссылка на заголовок

Полезный кейс по работе с гитом. Представьте, что вы работаете над своей фичей в отдельной ветке, и в это время кто-то из коллег залил изменения в основную ветку. Эти изменения вам нужны, чтобы продолжить свою работу, но у вас сейчас локально присутствует много изменений, которые пока рано коммитить. Как в таком случае обновить изменения?

Для этого удобно воспользоваться git stash. Делаем следующие шаги:

  1. Убираем все локальные изменения в git stash.
  2. Ребейзим себе изменения из основной ветки. Можно сразу из удаленной ветки в текущую.
  3. Достаем обратно наши локальные изменения. Если при этом возникают конфликты, резолвятся они также как и при мердже.

В скрипте будет выглядеть как-то так:

git stash push -m "temporary work"
git pull --rebase origin main
git stash pop

По сути своей, git stash это специальный стек для хранения временных локальных изменений. Гит реализует специальный механизм похожий на механизм коммитов для локальных изменений, что быватет полезно в частности когда нужно временно спрятать незакоммиченную работу

Раньше я пользовался только командой git stash чтобы удалить изменения, которые были сделаны как эксперимент. Но можно не только удалять, а также сохранять и если очень нужно - даже управлять версиями локальных изменений.