Git·19 вопросов

Что такое git stash и как им пользоваться?

Ответ

git stash сохраняет незакоммиченные изменения во временное хранилище, возвращая рабочую директорию к состоянию последнего коммита. Это полезно, когда нужно переключиться на другую ветку, но текущие изменения ещё не готовы для коммита.

Сохранение: git stash сохраняет изменения в индексе и рабочей директории. По умолчанию stash не включает untracked файлы — используйте git stash -u для их включения. Можно добавить описание: git stash push -m "работа над авторизацией".

Просмотр: git stash list показывает все сохранённые stash-записи. Каждая запись имеет вид stash@{0}, stash@{1} и т.д. Команда git stash show stash@{0} показывает файлы в конкретной записи, а git stash show -p stash@{0} показывает diff.

Восстановление: git stash pop применяет последнюю запись и удаляет её из списка. Команда git stash apply stash@{1} применяет запись, но не удаляет её — полезно, если хотите применить изменения в нескольких ветках. Если при pop возникают конфликты, запись не удаляется, и вы можете разрешить конфликты вручную.

Удаление: git stash drop stash@{0} удаляет конкретную запись. Команда git stash clear удаляет все записи — используйте с осторожностью.

Практический сценарий: вы работаете над feature-веткой, появляется срочный баг в main. Выполняете git stash, переключаетесь на main, фиксите баг, коммитите, возвращаетесь на feature-ветку и делаете git stash pop — изменения восстановлены.

Ограничение: stash хранится локально и не синхронизируется с remote. Если нужно перенести изменения между машинами, лучше создайте временную ветку и закоммитьте туда.

Полезен ли этот ответ?

Другие вопросы этой темы

Связанные вопросы из других тем