Git stash — важная команда, которая позволяет вам временно сохранять изменения, внесенные вами в рабочий каталог, без их фиксации. Это полезно в ситуациях, когда вам нужно переключить ветки или выполнить другие операции Git, но вы пока не хотите фиксировать свои изменения.

Например, предположим, что вы работаете над веткой функции под названием "feature-a" и внесли некоторые изменения в файл с именем "file.txt". Затем ваша команда попросит вас переключиться на ветку "bug-fix", чтобы исправить ошибку, но вы не хотите фиксировать свои изменения в "feature-a". только пока. Чтобы сохранить изменения, вы можете запустить команду «git stash», которая сохранит ваши изменения локально.

$ git stash
Saved working directory and index state WIP on feature-a; d7435644 Feat: added new feature

Теперь вы можете переключиться на ветку "bug-fix" и внести необходимые изменения, не беспокоясь о потере изменений в "feature-a".

$ git checkout bug-fix

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

$ git commit -am "Fixed bug in bug-fix branch"
$ git push origin bug-fix

Теперь вы можете вернуться к ветке feature-a и повторно применить сохраненные изменения с помощью команды "git stash pop".

$ git checkout feature-a
$ git stash pop

Это вернет изменения, внесенные вами в файл file.txt, и вы сможете продолжить работу над своей функцией.

Вы также можете использовать «git stash list», чтобы просмотреть список своих тайников, и «git stash apply», чтобы повторно применить определенные тайники. Например, если у вас есть несколько тайников и вы хотите повторно применить второй тайник, вы можете использовать команду:

$ git stash apply stash@{1}

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