Учебники

Git — Stash Operation

Предположим, вы реализуете новую функцию для вашего продукта. Ваш код находится в процессе выполнения, и внезапно происходит эскалация клиента. Из-за этого вам придется откладывать работу новой функции на несколько часов. Вы не можете зафиксировать свой частичный код, а также не можете выбросить свои изменения. Таким образом, вам нужно некоторое временное пространство, где вы можете сохранить свои частичные изменения, а затем зафиксировать их.

В Git операция stash берет ваши измененные отслеженные файлы, вносит изменения и сохраняет их в стек незавершенных изменений, которые вы можете повторно применить в любое время.

[jerry@CentOS project]$ git status -s
M string.c
?? string

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

[jerry@CentOS project]$ git stash
Saved working directory and index state WIP on master: e86f062 Added my_strcpy function
HEAD is now at e86f062 Added my_strcpy function

Теперь ваш рабочий каталог чист, и все изменения сохраняются в стеке. Давайте проверим это командой git status .

[jerry@CentOS project]$ git status -s
?? string

Теперь вы можете смело переключать филиал и работать в другом месте. Мы можем просмотреть список сохраненных изменений с помощью команды git stash list .

[jerry@CentOS project]$ git stash list
stash@{0}: WIP on master: e86f062 Added my_strcpy function

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

[jerry@CentOS project]$ git status -s
?? string

[jerry@CentOS project]$ git stash pop

Приведенная выше команда даст следующий результат: