Тур по Git
Ветвление и слияние / Урок 2.9

git switch -- Современный способ переключения веток

В Git 2.23 появилась команда git switch как более понятная альтернатива git checkout для переключения веток. В то время как checkout делает много вещей (переключает ветки, восстанавливает файлы, отделяет HEAD), switch делает одну вещь: переключает ветки.

Переключение веток

git switch feature

Это эквивалентно git checkout feature, но намерение понятнее.

Создание и переключение в одно действие

git switch -c new-feature

Флаг -c создаёт ветку и переключается на неё. Это замена для git checkout -b.

Переключение на предыдущую ветку

git switch -

Дефис означает "ветка, на которой я был до этого" -- удобно для переключения между двумя ветками.

Создание ветки от конкретной начальной точки

git switch -c bugfix main

Это создаёт ветку bugfix, начиная от вершины main, независимо от того, на какой ветке вы сейчас находитесь.

Почему стоит использовать switch вместо checkout?

git checkout перегружена -- она делает слишком много разных вещей:

КомандаЧто она делает
git checkout featureПереключение на ветку
git checkout -- file.txtВосстановление файла (отмена изменений)
git checkout abc1234Отделение HEAD на коммите

Это может сбивать с толку и даже быть опасным. git switch и git restore разделяют эти обязанности:

  • git switch -- только для переключения веток
  • git restore -- только для восстановления файлов

Попробуйте!

Потренируйтесь использовать git switch для операций с ветками:

  1. Создайте файл и сделайте коммит: echo "start" > app.txt, затем git add app.txt, затем git commit -m "Initial commit"
  2. Создайте и переключитесь на новую ветку: git switch -c feature
  3. Убедитесь, что вы на новой ветке: git branch
  4. Сделайте коммит: echo "feature work" >> app.txt, затем git add app.txt, затем git commit -m "Add feature work"
  5. Вернитесь на main: git switch main
  6. Переключитесь обратно на feature: git switch -
  7. Снова переключитесь на main: git switch main
  8. Создайте ветку от конкретной точки: git switch -c hotfix feature
  9. Проверьте лог: git log --oneline -- вы должны увидеть коммит feature, потому что hotfix начался от feature

Ключевая идея

git switch и git checkout выполняют одну и ту же задачу по переключению веток. Если вы изучаете Git с нуля, предпочитайте git switch -- она проще и безопаснее. Если вы уже используете checkout по привычке, это тоже нормально. Обе команды будут поддерживаться в обозримом будущем.

🎯

Цель

Используйте git switch для создания и переключения между ветками

Terminal
$

No commits yet. Run `git init` and create your first commit.