Сохранение изменений в stash
Теперь, когда рабочее пространство настроено, давайте внесем некоторые изменения и узнаем, как сохранить их в stash (хранилище временных изменений).
Сначала внесем изменения в файл README.md:
echo "This is a work in progress" >> README.md
Эта команда добавляет новую строку в файл README.md. Также создадим новый файл:
echo "Some important notes" > notes.txt
Теперь, если выполнить команду git status
, мы увидим, что есть как измененные, так и неотслеживаемые файлы:
git status
Вы должны увидеть вывод, показывающий, что файл README.md изменен, а файл notes.txt не отслеживается.
Представьте, что в этот момент вам нужно быстро переключиться на другую задачу, но вы не готовы коммитить (фиксировать) эти изменения. Именно здесь пригодится команда git stash
!
Чтобы сохранить изменения в stash, выполните:
git stash
Вы должны увидеть вывод, похожий на следующий:
Saved working directory and index state WIP on master: 1234567 Initial commit
Теперь, если снова выполнить команду git status
, вы увидите что-то интересное:
git status
Вы заметите, что файл README.md больше не показывается как измененный, но файл notes.txt все еще перечислен как неотслеживаемый. Это важный момент о команде git stash
:
Важно: По умолчанию команда git stash
сохраняет только:
- Изменения в отслеживаемых файлах (файлах, которые уже отслеживаются Git)
- Подготовленные к коммиту изменения (staged changes)
Неотслеживаемые файлы (как наш notes.txt) по умолчанию не включаются в stash. Это поведение гарантирует, что Git случайно не скроет новые файлы, которые вы, возможно, не хотите включать в репозиторий.
Если вы хотите включить неотслеживаемые файлы в stash, вы можете использовать опцию -u
(или --include-untracked
):
git stash -u
После выполнения этой команды как изменения в файле README.md, так и новый файл notes.txt будут сохранены в stash.
Чтобы посмотреть, что находится в вашем stash, вы можете использовать:
git stash list
Вы должны увидеть одну или две записи в stash, в зависимости от того, использовали ли вы опцию -u
.
Нажмите q
, чтобы выйти из просмотра списка stash.
Помните, что сохранение изменений в stash идеально подходит для быстрых переключений контекста. Однако это не замена коммитам в долгосрочном рабочем процессе. Stash предназначен для временного хранения.