Git: Создание ветки
Последнее обновление
Современный способ создать ветку и сразу переключиться на неё в один шаг — это git switch -c <name>. Более старая команда git checkout -b <name> делает то же самое и по-прежнему работает везде. git branch <name> создаёт ветку без переключения на неё. Новая ветка начинается там, где вы находитесь сейчас, если только вы не укажете другую отправную точку.
Попробуйте это в терминальном playground — настоящей оболочке в вашем браузере, ничего не нужно устанавливать.
Синтаксис
| Command | What it does |
|---|---|
git switch -c feature | Создаёт feature и переключается на неё (современный способ) |
git checkout -b feature | Создаёт и переключается (более старый, эквивалентный) |
git branch feature | Создаёт ветку без переключения на неё |
git switch -c feature main | Создаёт feature, начиная с main |
git switch -c feature <hash> | Создаёт ветку, начиная с коммита |
Частые случаи
| Goal | Command |
|---|---|
| Создать ветку от удалённой ветки | git switch -c feature origin/feature |
| Отправить новую ветку и задать upstream | git push -u origin feature |
| Создать ветку, на которую переключитесь позже | git branch feature |
Частые вопросы о создании веток в Git
Как создать ветку и переключиться на неё одной командой?
Выполните
git switch -c <name> (современный Git) или эквивалентную git checkout -b <name>. Обе создают новую ветку из вашего текущего коммита и сразу переключаются на неё, так что вы можете немедленно начать работу.В чём разница между git switch -c и git checkout -b?
Они делают одно и то же — создают ветку и переключаются на неё.
git switch — более новая и более узконаправленная команда, введённая для отделения переключения веток от множества других применений git checkout. git checkout -b старше, но по-прежнему полностью поддерживается; используйте ту, которую предпочитает ваша команда.Как создать ветку от другой ветки или от конкретного коммита?
Добавьте отправную точку как последний аргумент:
git switch -c feature main создаёт ветку от main, а git switch -c feature <hash> — от конкретного коммита. Без отправной точки ветка создаётся из вашего текущего HEAD.Как отправить новую ветку в удалённый репозиторий?
После создания локально выполните
git push -u origin <name>. Флаг -u задаёт upstream, чтобы будущие git push и git pull на этой ветке не требовали аргументов. Ветка не существует в удалённом репозитории, пока вы её не отправите.Могу ли я потренироваться в этом онлайн?
Да. Откройте терминальный playground, чтобы выполнить эти команды в настоящей оболочке в вашем браузере — ничего не нужно устанавливать. Бесплатный интерактивный курс по Git от Coddy также охватывает работу с ветками от начала до конца.