25

How do I create a new branch in git to begin work on a new feature?

I want the new branch to be a duplicate of the current branch (ie, the new branch's HEAD should be the same as the current HEAD).


Question differentiation:

Community
  • 1
  • 1
Tom Hale
  • 40,825
  • 36
  • 187
  • 242
  • 3
    Reopen queue reviewers: you may wish to read the meta.so discussion of this question [here](https://meta.stackoverflow.com/q/373487/5353461). – Tom Hale Sep 01 '18 at 10:15
  • (Nitpick) I think you're having the wrong links for the "question differentiation" section. There are 4 links but only 2 questions. – user202729 Sep 01 '18 at 16:32
  • @user202729 The bottom two links were initially marked as duplicates as mentioned in the meta discussion linked in my previous comment. I'll edit the differentiation to make that more obvious. – Tom Hale Sep 02 '18 at 04:43

2 Answers2

44

TL;DR:

To create and start work on a new branch called FEATURE, you do:

git checkout -b FEATURE

Detailed explanation

To create a branch called FEATURE:

git branch FEATURE

However, this does not change your current branch.

You can then checkout the newly created branch (which means make to it the branch you're currently working on:

git checkout FEATURE

(You can see the current branch marked with a * in the output of git branch --list.)

Generally you want to start working in the branch you have just created, so the shortcut equivalent for both commands is git checkout -b FEATURE, which creates a new branch, then does checkout on it.

Tom Hale
  • 40,825
  • 36
  • 187
  • 242
38

If you say

$ git checkout -b myFeatureBranch anotherBranch

It'll create myFeatureBranch off of anotherBranch. But if you say

$ git checkout -b myFeatureBranch

It'll create myFeatureBranch off of the current branch.

doctorram
  • 1,112
  • 14
  • 13