git ready

Изучайте Git коммит за коммитом
Автор — Ник Куаранто, перевод — Алексей Бобьяков

Спрячьте ваши изменения

опубликован 10 Jan 2009

Предположим, вы работаете над этой новой замечательной функцией, а кто-то только что нашёл ошибку, которую вам нужно срочно исправить. В таком случае вам пригодится возможность Git прятать (stash) текущие изменения. Добавьте все сделанные изменения в индекс используя

git add .

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

git stash

Вуаля, вы вернулись к исходному состоянию проекта. Исправили ошибку? Теперь можно продолжить работать над функцией:

git stash apply

Git позволяет последовательно спрятать несколько изменений, поэтому не забывайте использовать

git stash list

для просмотра всего списка заначек. Из стека легко можно достать заначки любого уровня. Например, для внесения изменений из второй заначки вам нужно вызвать следующую команду:

git stash apply stash@{1}

Изменения из вершины стека вносятся в текущий код с помощью опции pop (Спасибо, jamesgolick!):

git stash pop

Обратите внимание, что эта команда удаляет спрятанные изменения, в то время как apply оставляет их в стеке. Удалить заначку с номером id можно так:

git stash drop <id>

Опция clear полностью очищает стек:

git stash clear