Для чего нужен git stash?

Работая с git рано или поздно происходит такая ситуация, когда во время работы над одной задачей, требуется сделать какое-то срочное изменение в коде. Правильнее, пожалуй, создавать отдельную ветку, но что делать, если ветку мы не создали? В этом случае нам на помощь приходит команда git stash. Она позволяет спрятать неприменённые изменения в stash-очередь, и затем, когда надо — достать их обратно. Порядок действий такой:

git stash save "On the middle of bigger work" # Сохраняем изменения
# делаем срочные изменения
git commit -a "Typo fixed"
git stash apply # Достаем обратно наши изменения

Да, для удобства можно запускать команду

git stash

без команды «save» и сообщения. Работать будет аналогично команде save с пустым сообщением.

И еще (как раз мой случай). Если вы все-таки надумали создать-таки отдельную ветку, то для этого есть команда git stash branch. Порядок действий такой:

git stash # Сохраняем изменения
git stash branch newbranch

Последняя команда создает новую ветку (с момента создания последнего снимка) с именем newbranch, переключается к ней, применяет к ней изменения, и удаляет изменения из stash-очереди. Удобно, не правда ли?

Выражаю свою благодарность пользователю ranulf на канале #git@Freenode за его совет.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: