Условие
С помощью каких команд git можно создать новую ветку с именем tbank и переключиться на неё?
(Один правильный ответ — полный набор команд для решения.)
git checkout -b tbankgit checkout tbankgit branch tbank+git checkout tbankgit branch tbank+git checkout tbank
Решение
Правильных вариантов два (они эквивалентны):
git checkout -b tbank— одной командой: создаёт ветку и сразу переключается.git branch tbank+git checkout tbank— двумя командами: сначала создание, потом переключение.
Разбор каждого варианта
| Команда | Что делает |
|---|---|
git checkout -b tbank |
Создаёт ветку tbank от текущего HEAD и переключает на неё |
git checkout tbank |
Переключается на существующую ветку (упадёт, если её нет) |
git branch tbank |
Создаёт ветку, но не переключается |
git branch tbank + git checkout tbank |
То же, что -b, но в два шага |
Современный аналог (Git 2.23+)
git switch -c tbank # = checkout -b
git switch tbank # = checkout (без -b, существующая)switch/restore появились, чтобы разделить две функции checkout-а: смену ветки и восстановление файлов.
Из удалённой ветки
git fetch origin # обновили refs
git checkout -b tbank origin/tbank # локальная ветка из удалённой
# или короче:
git checkout tbank # Git сам разберётся в новых версияхПодводные камни
git branch tbankбез последующегоcheckout. Часто разработчик создаёт ветку и продолжает работать вmain, думая, что уже вtbank. Проверка:git branch --show-current.git checkout tbank— без-bупадёт, если ветки ещё нет. С-b— создаст.- Ветка от не той точки.
checkout -bберётHEADтекущей ветки. Если случайно были вfeature/old, веткаtbankначнётся оттуда. Чтобы явно отmain:git checkout -b tbank main.
Эталонный ответ
git checkout -b tbank (одной командой) или git branch tbank + git checkout tbank (двумя). Оба варианта эквивалентны.