Webdevkin
Онлайн-курсы, статьи по веб-разработке и интернет-магазинам, уроки vue.js

Изучаем Git. Урок 12.
git stash

Урок, в котором мы узнаем, что такое git stash и как с ним работать

Видеоурок

Конспект урока

Краткое содержание урока, основные инструкции для командной строки, полезные ссылки и советы.

Что такое git stash

Инструмент git stash очень похож на множественный буфер обмена. Это те же привычные команды Вырезать и Вставить. Только с той разницей, что мы работаем не с выделенным текстом и файлами, а с изменениями кода.

Зачем нужен git stash

Для того, чтобы временно "вырезать" изменения и позже "вернуть" их обратно. Причины использования git stash те же, что и при работе с буфером обмена

Как "вырезать" или "застэшить" изменения

Это самое простое использование git stash - без параметров. Незафиксированные изменения при этом "вырезаются" в "буфер обмена"

Как "вернуть" изменения обратно

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

git stash pop без параметров вытаскивает стэш, который попал в буфер последним

Как просмотреть список стэшей

Эта команда выводит список доступных стэшей в формате: id, WIP (Work In Progress), ветка, на которой был сделан стэш, и хэш и message последнего коммита в ветке

Как застэшить со своим сообщением

Смотрим список файлов в стэше

Подробная информация о стэше

Информация показывается в том же виде, что и при git log -p

В чем отличие pop и apply

Функция команд git stash pop и apply одна и та же - выстаскивать изменения из стэша. Отличие в одном - pop при этом удаляет стэш, а apply - нет.

С apply удобно работать, когда мы собираемся применять стэш несколько раз

Команда так же работает с параметром, если нужно применить не последний, а конкретный стэш

Удаление стэша

Команда просто удаляем стэш

Очистка стэша

Удаляем все стэши

Стэш с новыми файлами

Если мы создали новый файл, то при git stash он в стэш не попадет. Иногда это вызывает неудобства по двум причинам

  • Можно случайно закоммитить лишний файл
  • Если этот файл относится к застэшенным изменениям, поэтому хорошо бы держать его там же, в стэше

Флажок -u решает эту проблему

Конфликты при git stash

Конфликты при git stash pop или apply возникают по тем же причинам, что и обычные конфликты при мердже веток. Разрешаются они аналогичным способом

Работа с git stash в PhpStorm

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

Заключение

git stash - очень удобный инстумент, без которого работать так же неудобно, как и без буфера обмена. Небольшая практика - и вы будете работать с git stash так же непринужденно, как и с привычными командами Ctrl+X и Ctrl+V

Спасибо за внимание и до встречи!

Следующий урок ⇨
Урок 13. git cherry-pick

⇦ Предыдущий урок
Урок 11. gitignore и git exclude

Все уроки курса

* платные уроки

список обновляется...