Бывает, что вы сделали изменения и поняли, что они слишком большие для главной/активной ветки, требуют большей работы, чем вы думали и т.д. Вы можете перенести все изменения из working tree, которые вы еще не закоммитили в новую ветку. Исходящие коммиты при этом также будут перенесены на новую ветку.
git switch -c new-branch-name
До появления команды switch в 2.23 использовали git checkout -b new-branch-name
.
Далее просто коммитите изменения уже в новую ветку. После чего можно вернуться в изначальную.
Этот метод подходит, когда вы поняли, что начали делать целую новую фичу, которую планируете реализовать потом (дойдут ли до этого руки уже другой вопрос:). Если же вы просто хотите временно отложить изменения, то используйте git stash.