Как я могу использовать новый синтаксис `git switch` для создания новой ветки? - PullRequest
2 голосов
/ 26 сентября 2019

Я привык к git checkout -b branchname для переключения на новую ветку с именем branchname.Как мне сделать то же самое с git switch?

Ответы [ 2 ]

2 голосов
/ 26 сентября 2019

Синтаксис для создания новой ветви с git switch: git switch -c branchname или git switch --create branchname.

1 голос
/ 26 сентября 2019

На самом деле, вам даже (всегда) не нужна опция --create при создании новой ветви с git switch:

, если эта ветвь соответствует удаленной, отслеживающей,он создаст локальную ветвь и автоматически отследит удаленную!

То есть достаточно простого git switch <branch>.

Если <branch> не найдено, но существуетотслеживание ветви только на одном пульте (назовите его <remote>) с соответствующим именем, обрабатывайте как эквивалентное:

$ git switch -c <branch> --track <remote>/<branch>

Если филиал существует в нескольких удаленных пунктах, и один из них являетсяназванный переменной конфигурации checkout.defaultRemote, мы будем использовать его для устранения неоднозначности, даже если <branch> не уникален для всех удаленных устройств.
Установите его, например, checkout.defaultRemote=origin, чтобы всегда извлекать удаленные ветвиоттуда, если <branch> является неоднозначным, но существует на пульте origin.
См. также checkout.defaultRemote in git config.

Plus, если вы переключитепо ошибке в удаленную ветку отслеживания происходит сбой (в отличие от git checkout, чтосъел отсоединенную ГОЛОВУ от указанной удаленной ветви!)

git switch origin/master
fatal: a branch is expected, got remote branch 'origin/master'

Vs.

git checkout origin/master
Note: switching to 'origin/master'.

You are in 'detached HEAD' state
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...