Глиф Учебники

Как переключиться на другую ветку

Справочник · Git · 1 минута чтения

Терминал
$ git switch dev
Switched to branch 'dev'

То же самое старой командой — git checkout dev. Она работает во всех версиях Git, git switch — в 2.23 и новее. Список веток — git branch, текущая отмечена звёздочкой.

Полезные варианты

ЗадачаКоманда
Создать ветку и перейти в неёgit switch -c new-feature (или git checkout -b new-feature)
Вернуться на предыдущую веткуgit switch -
Посмотреть все ветки, включая серверныеgit branch -a
Какая ветка сейчасgit status (первая строка) или git branch --show-current

Ветка есть только на сервере

Коллега отправил ветку dev, у вас её ещё нет. Сначала скачайте сведения о ветках, потом переключитесь:

Терминал
$ git fetch
$ git switch dev
Switched to a new branch 'dev'
branch 'dev' set up to track 'origin/dev'.

Git сам создал локальную ветку dev, связанную с origin/dev. Если такое имя есть у нескольких удалённых репозиториев, укажите явно: git switch -c dev --track origin/dev.

Мешают незакоммиченные изменения

Текст
error: Your local changes to the following files would be overwritten by checkout:
    README.md
Please commit your changes or stash them before you switch branches.
Aborting

В рабочей папке есть правки, а в другой ветке этот файл отличается. Git не переключается, чтобы не потерять ваши правки. Три выхода:

git switch -f и git checkout -f переключают принудительно и молча выбрасывают все незакоммиченные правки в файлах, которые мешали. Вернуть их будет нельзя.

Если правки не мешают (файл в обеих ветках одинаков), Git переключится и перенесёт их с собой — они не привязаны к ветке, пока не сделан коммит.

Частые ошибки