В чем разница между "git branch" и "git checkout -b"? - PullRequest
167 голосов
/ 03 ноября 2011

Я использовал git checkout -b для создания новой ветви. Я думаю, что git branch делает то же самое. Чем эти две команды отличаются, если они вообще отличаются?

Ответы [ 7 ]

226 голосов
/ 03 ноября 2011

git checkout -b BRANCH_NAME создает новую ветвь и проверяет новую ветвь, в то время как git branch BRANCH_NAME создает новую ветвь, но оставляет вас в той же ветке.

Другими словами git checkout -b BRANCH_NAME делает для вас следующее.

git branch BRANCH_NAME    # create a new branch
git checkout BRANCH_NAME  # then switch to the new branch
40 голосов
/ 03 ноября 2011

git branch создает ветку, но вы остаетесь в текущей ветви, которую вы извлекли.

git checkout -b создает ветку и проверяет ее.

Это сокращение от:

git branch name
git checkout name
22 голосов
/ 03 ноября 2011
  • git branch: Показывает все ваши филиалы
  • git branch newbranch: Создает новую ветку
  • git checkout -b newbranch: Создает новую ветку и немедленно переключается на эту ветку. Это то же самое, что git branch newbranch, за которым следует git checkout newbranch.
17 голосов
/ 05 декабря 2013

Полный синтаксис:

git checkout -b [NEW_BRANCH] [FROM_BRANCH]

[FROM_BRANCH] является необязательным.Если FROM_BRANCH отсутствует, git будет использовать текущую ветвь.

6 голосов
/ 03 октября 2013

Также следует упомянуть еще один флаг, относящийся к этим.

git checkout -B BRANCH_NAME

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

0 голосов
/ 19 ноября 2017

По существу:

A-git branch позволяет вам создавать простые и понятные ветки.

B -git checkout -b позволяет вам создать ветку и одновременно переключиться на нее.

Когда вы будете использовать что? 1- git branch, когда вы хотите создать ветку, но остаетесь в текущей ветке. 2- git checkout -b, когда вы хотите создать и переключиться. Если вы посмотрите на это, интуитивно понятно создать ветку и переключиться на нее. Так что выбор за вами:)

0 голосов
/ 21 февраля 2017

Существуют формы обеих команд, которые похожи (смотрите git-scm docs Версия 2.11.1):

git branch <branchname> <start-point>

и

git checkout -b <new_branch> <start_point>

последний , который сначала выполняет команду перехода, а затем добавляет извлечение. В этой форме явно ссылаются на документацию git-branch:

Указание -b вызывает создание новой ветви, как если бы git-branch [2] были вызваны и затем проверены

...