Хоумпэйдж на задворках • НавигацияОбо мне

Команда git stash: для чего нужна и как работает

Команда git stash в Git используется для временного сохранения (или «прихоронения») изменений в рабочем каталоге, чтобы вы могли вернуться к чистому состоянию репозитория. Это полезно, когда вам нужно переключиться на другую ветку или выполнить другую задачу, но вы не хотите коммитить незавершенные изменения.

Подробнее — в этой небольшой заметке.

Команда git stash

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

Основные команды и примеры:

✵ Сохранение изменений в stash:

git stash

Это сохранит все изменения в отслеживаемых файлах и вернет рабочий каталог в состояние последнего коммита.

✵ Сохранение изменений с сообщением:

git stash save "Сообщение о стэше"

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

✵ Просмотр списка сохраненных stash:

git stash list

Эта команда покажет список всех сохраненных stash с их идентификаторами и сообщениями.

✵ Восстановление изменений из stash:

git stash apply

Эта команда применит последние сохраненные изменения из stash к вашему рабочему каталогу, но не удалит их из списка stash.

✵ Восстановление конкретного stash:

git stash apply stash@{1}

Здесь stash@{1} — это идентификатор конкретного stash, который вы хотите восстановить.

✵ Удаление stash после применения: если вы хотите удалить stash после его применения, используйте:

git stash pop

Эта команда применит изменения и удалит их из списка stash.

✵ Удаление конкретного stash:

git stash drop stash@{0}

Это удалит указанный stash из списка.

✵ Очистка всех stash:

git stash clear

Эта команда удалит все сохраненные stash.

Пример использования:

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

✵ Вы сохраняете свои изменения:

git stash

✵ Переключаетесь на ветку main:

git checkout main

✵ Исправляете ошибку и коммитите изменения.

✵ Возвращаетесь к ветке feature:

git checkout feature

✵ Восстанавливаете свои изменения:

git stash pop

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

Подписаться на блог
Отправить
Поделиться
Запинить
Дальше