Поиск по сайту
Ctrl + K
Вопросы по Git

Что такое git stash?

git stash — это команда в системе управления версиями Git, которая позволяет временно сохранить текущие изменения в рабочем каталоге, не добавляя их в коммит. Это полезно, когда вам нужно переключиться на другую ветку или выполнить другие действия, не желая потерять незавершённую работу.

Как работает git stash

Когда вы выполняете команду git stash, Git берет все изменения, которые не были закоммичены (например, изменения в отслеживаемых файлах и новые файлы), и сохраняет их в области, называемой "хранилищем" (stash). Эти изменения можно потом восстановить в любое время.

Основные команды

  • Сохранить изменения в хранилище:
    git stash
    

    Эта команда сохраняет все изменения и восстанавливает состояние рабочего каталога до последнего коммита.
  • Список сохранённых изменений:
    git stash list
    

    Выводит список всех сохранённых изменений, например:
    stash@{0}: WIP on master: 6e5f692 начальные изменения
    
  • Восстановить последние сохранённые изменения:
    git stash pop
    

    Закоманду pop извлекает последние сохранённые изменения из хранилища и удаляет их оттуда.
  • Восстановить изменения, не удаляя их из хранилища:
    git stash apply
    

    Эта команда применяет изменения, но сохраняет их в хранилище для дальнейшего использования.
  • Удалить сохранённые изменения из хранилища:
    git stash drop stash@{0}
    

    Эта команда удаляет конкретный элемент из хранилища.
  • Очистить всё хранилище:
    git stash clear
    

    Удаляет все сохранённые изменения из хранилища.
  • Пример использования

    Предположим, вы работаете над новой функциональностью и внесли изменения в несколько файлов, но вам нужно переключиться на ветку для исправления ошибки. Чтобы временно сохранить свою работу, выполните:

    git stash
    

    Теперь вы можете уверенно переключиться на другую ветку:

    git checkout hotfix-branch
    

    После того как вы завершите работу с ошибкой и вернётесь на свою ветку:

    git checkout feature-branch
    git stash pop
    

    Ваши изменения будут восстановлены, и вы сможете продолжать работу.

    Заключение

    Команда git stash — это мощный инструмент, который помогает управлять незавершёнными изменениями в Git, позволяя вам легко переключаться между задачами, не теряя прогресс. Это базовая, но важная функциональность, которая особенно полезна в повседневной работе с Git.