I used git checkout -b
to create a new branch. I think that git branch
does the same thing.
How do these two commands differ, if they differ at all?
问题:
回答1:
git checkout -b BRANCH_NAME
creates a new branch and checks out the new branch while git branch BRANCH_NAME
creates a new branch but leaves you on the same branch.
In other words git checkout -b BRANCH_NAME
does the following for you.
git branch BRANCH_NAME # create a new branch
git checkout BRANCH_NAME # then switch to the new branch
回答2:
git branch
creates the branch but you remain in the current branch that you have checked out.
git checkout -b
creates a branch and checks it out.
It is the short for:
git branch name
git checkout name
回答3:
git branch
: Shows all your branchesgit branch newbranch
: Creates a new branchgit checkout -b newbranch
: Creates a new branch and switches to that branch immediately. This is the same asgit branch newbranch
followed bygit checkout newbranch
.
回答4:
Full syntax:
git checkout -b [NEW_BRANCH] [FROM_BRANCH]
The [FROM_BRANCH] is optional. If there's no FROM_BRANCH, git will use the current branch.
回答5:
There is also another flag to mention, which is relative to these..
git checkout -B BRANCH_NAME
This is a very useful command that i've been using recently. This command checks out the branch you specify, and resets the branch based on the source branch.
回答6:
There are forms of both commands that are similar (looking at git-scm docs Version 2.11.1):
git branch <branchname> <start-point>
and
git checkout -b <new_branch> <start_point>
The latter executing the branch command first and then adding the checkout. In that form explicitly references to git-branch's doc:
Specifying -b causes a new branch to be created as if git-branch[2] were called and then checked out
回答7:
Essentially :
A-git branch lets you create a branch plain and simple.
B -git checkout -b allows you to create a branch and switch to it at the same time.
When will you use which ? 1- git branch when you want to create a branch but stay on the current branch. 2- git checkout -b when you want to create and switch. If you look at it is intuitive to create a branch and switch to it. So the choice is yours :)