How to Create a New and Empty Branch in Git

Published on 2012-01-18.

In many coding projects the code is kept in one repository and the documentation is kept in another.

If the project is a web application with a database backend perhaps a backup of the SQL code is kept in yet another repository.

In Git you can have it all in one repository and keep things separated and isolated in branches.

Normally branches share files from the directory, but in Git it is possible to create empty branches.

You can create a new empty branch like this:

$ git checkout --orphan foo

--orphan creates a new branch, but it starts without any commit. After running the above command you are on a new branch "foo", and the first commit you create from this state will start a new history without any ancestry.

The --orphan command keeps the index and the working tree files intact in order to make it convenient for creating a new history whose trees resemble the ones from the original branch.

Since you want to create a new empty branch that has nothing to do with the original branch, you can delete all files in the new working directory:

$ git rm -rf .

Now you can start adding files and commit them and they will live in their own branch. If you take a look at the log, you will see that it is isolated from the original log.

Using the checkout command you can switch back and forth between the different branches like this (just like if you where switching between directories):

$ git checkout master
$ git checkout foo

You need to run git version 1.7.2 or higher in order for the --orphan option to be supported.