What is the difference between "git branch" and "git checkout -b"?

Adrien Joly picture Adrien Joly · Nov 2, 2011 · Viewed 69.7k times · Source

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?

Answer

Fatih Acet picture Fatih Acet · Nov 2, 2011

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 switch BRANCH_NAME    # then switch to the new branch