Git Stash
Последнее обновление
git stash откладывает ваши незакоммиченные изменения и возвращает рабочее дерево в чистое состояние, чтобы вы могли переключить ветку или сделать pull, не коммитя незавершённую работу. Изменения помещаются в стек, к которому можно вернуться позже с помощью git stash pop (применить и удалить) или git stash apply (применить и сохранить).
Попробуйте это в терминальном playground - настоящая оболочка в вашем браузере, ничего устанавливать не нужно.
Синтаксис
| Command | What it does |
|---|---|
git stash | Отложить отслеживаемые изменения, очистить рабочее дерево |
git stash -u | Также откладывает неотслеживаемые файлы |
git stash push -m "msg" | Отложить с описательным сообщением |
git stash push <file> | Отложить только определённый файл |
git stash list | Показать список всех stash'ей |
git stash pop | Повторно применить последний stash и удалить его |
git stash apply | Повторно применить последний stash, сохранить его |
git stash drop | Удалить последний stash |
git stash clear | Удалить все stash'и |
pop vs apply
| Behavior | git stash pop | git stash apply |
|---|---|---|
| Повторно применяет изменения | Да | Да |
| Удаляет stash после этого | Да | Нет |
| Подходит для повторного использования stash'а | Нет | Да |
Часто задаваемые вопросы о git stash
Что делает git stash?
git stash pop или git stash apply. Это удобно, когда нужно переключить ветку, но вы ещё не готовы делать коммит.В чём разница между git stash pop и git stash apply?
git stash pop затем также удаляет этот stash из стека, тогда как git stash apply оставляет его в стеке, чтобы вы могли применить его снова в другом месте. Используйте pop для однократного восстановления, а apply - когда хотите повторно использовать stash.Включает ли git stash неотслеживаемые файлы?
git stash откладывает только отслеживаемые (изменённые) файлы. Добавьте -u (git stash -u), чтобы включить неотслеживаемые файлы, или -a, чтобы включить также игнорируемые файлы. Без этих флагов новые файлы, к которым вы не применяли git add, остаются в вашем рабочем дереве.Как применить конкретный stash?
git stash list, чтобы увидеть их пронумерованными как stash@{0}, stash@{1}, затем git stash apply stash@{1} (или pop), чтобы повторно применить конкретный. Каждый stash также показывает ветку и сообщение, с которыми он был создан, чтобы вы могли их различать.Могу ли я попрактиковаться в этом онлайн?
git stash в настоящей оболочке в вашем браузере - ничего устанавливать не нужно. Бесплатный интерактивный курс Git от Coddy также пошагово охватывает управление незавершённой работой.