Переключение на другую задачу, когда тьекущая еще не закончена
Если текущая задача еще не завершена, но требуется переключиться на другую, важно сохранить прогресс, чтобы потом без проблем вернуться к работе. В GIT это можно сделать несколькими способами.
1. Использование git stash
(Временное сохранение изменений)
Если изменения не готовы для коммита, можно их временно отложить:
git stash
Теперь рабочая директория станет чистой, и можно переключаться на другую ветку:
git checkout feature/another-task
Когда будет возможность вернуться к предыдущей задаче, можно восстановить изменения:
git checkout feature/new-feature
git stash pop # Вернет изменения и удалит их из stash
Если требуется сохранить несколько отложенных изменений, можно посмотреть список stash:
git stash list
А затем применить нужный:
git stash apply stash@{0}
2. Коммит незавершенных изменений в черновую ветку
Если изменения значительные, но не готовы для основного репозитория, можно создать временную ветку:
git checkout -b wip/feature-new-feature
git add .
git commit -m "WIP: временное сохранение"
git push origin wip/feature-new-feature
После этого можно переключиться на другую задачу:
git checkout feature/another-task
Когда будет возможность вернуться, просто переключиться обратно:
git checkout feature/new-feature
git merge wip/feature-new-feature
3. Коммит с пометкой WIP
(Work In Progress)
Если возможно закоммитить частичные изменения, можно сделать коммит с пометкой WIP
:
git add .
git commit -m "WIP: начало работы над фичей"
Затем переключиться на другую ветку:
git checkout feature/another-task
Когда будет возможность вернуться, переключиться обратно и продолжить работу.
Какой способ выбрать?
git stash
— если изменения локальные и их не нужно пушить.- Черновая ветка (
wip/feature-new-feature
) — если требуется сохранить изменения на сервере. - Коммит
WIP
— если можно сделать осмысленный коммит.
Обычно в командах git stash
подходит для быстрого переключения, а WIP
-коммиты или черновые ветки — для более долгосрочных перерывов.