Stash между ветками
Тема дорожной карты · Изучи Git
Git stash — это мощный инструмент для временного хранения незакоммиченных изменений в вашем проекте. Особенно полезен он, когда вы работаете над несколькими задачами и необходимо быстро переключиться между ними. Stash позволяет сохранить текущее состояние вашего рабочего каталога и индекса, переключиться на другую ветку и вернуться к сохранённым изменениям, когда это будет необходимо. Это особенно важно, когда вы работаете в команде и должны быстро реагировать на изменения требований или критические баги.
Как это работает
Stash между ветками временно откладывает незакоммиченные изменения. Команда git stash (или git stash push -m "msg") сохраняет состояние рабочего каталога и индекса. Команда git stash list выводит список всех сохранённых stash, позволяя вам выбрать нужную запись. Команда git stash pop применяет сохранённые изменения и удаляет запись stash из стека. Команда git stash apply применяет изменения без удаления записи stash. Команда git stash branch <name> создаёт новую ветку из сохранённого stash. Неотслеживаемые файлы требуют использования опции -u (--include-untracked), чтобы захватить их в stash.
Stash представляет собой стек, где каждая запись stash имеет уникальный идентификатор, например stash@{0} для последней записи. Это позволяет вам легко находить и применять нужные записи stash.
Когда применять
Stash особенно полезен, когда вам нужно быстро переключиться между задачами или ветками. Например, если вы работаете над одной задачей, но вдруг возникает критический баг, который требует немедленного исправления. В этом случае вы можете сохранить текущее состояние проекта с помощью git stash, переключиться на ветку с багом и исправить его. После этого вы можете вернуться к сохранённым изменениям и продолжить работу над первоначальной задачей.
Важно всегда использовать сообщение при сохранении stash (stash push -m "msg"), чтобы вы могли легко определить, что было сохранено в конкретной записи stash. Например, сообщение WIP on feature/foo шесть stash спустя бесполезно, так как вы не сможете легко определить, что было сохранено в этой записи stash. Вместо этого используйте конкретные и описательные сообщения, чтобы упростить поиск и применение нужных записей stash.
Типичные ошибки
Типичные ловушки при использовании stash между ветками включают забывание о существовании stash (например, неделя спустя: "что было в stash@{4}?"). Также часто возникают ошибки при использовании команды git stash drop, вместо команды apply. Это приводит к удалению изменений, которые были сохранены в stash, кроме информации, сохранённой в reflog.
Другой типичной ошибкой является использование stash между крупными прыжками веток, что может привести к сложным и криптичным конфликтам при попытке применить stash с помощью команды pop.
Связанные понятия
Полезные ресурсы
Проверить знания (1)
Загрузка вопросов…