← Все вопросы

Как создать новую ветку в git и сразу переключиться на неё?

Задан 15 месяцев назад1.5к просмотров2 ответа
9

Начинаю новую фичу и хочу создать ветку и перейти в неё одной командой. Видел и checkout -b, и какой-то switch. В чём разница и что использовать сейчас?

2 ответа

11
✓ Принятый ответ — помог автору

Есть два рабочих способа — старый и новый, оба создают ветку и сразу переключают на неё.

Современный способ (git 2.23+) — команда switch:

git switch -c new-feature

Флаг -c означает create. Понятно и без сюрпризов.

Классический способ, который работает везде, — checkout -b:

git checkout -b new-feature

Обе команды делают одно и то же: создают ветку new-feature от текущего коммита и переключают на неё.

Если ветка уже существует и нужно просто перейти:

git switch new-feature

или по-старому:

git checkout new-feature

Посмотреть список веток и понять, где ты находишься:

git branch

Звёздочка * отметит текущую ветку.

Частая ошибка: забыть флаг -c/-b при создании. git switch new-feature (без -c) попытается переключиться на ветку, которой нет, и выдаст ошибку «ветка не найдена». Чтобы именно создать — нужен -c (или -b для checkout).

3

Зачем ввели switch, если был checkout? Потому что checkout делал слишком много разных вещей (и ветки, и откат файлов), новичков это путало. В git 2.23 его разбили на два понятных инструмента:

  • git switch — переключение и создание веток.
  • git restore — откат файлов.

Если версия git свежая, привыкай к switch/restore — так понятнее.

Ваш ответ

Войдите, чтобы ответить на вопрос.