I've just discovered git checkout --orphan
, but I don't know how to use it. Its help page says it creates a new unparented branch.
In the master
branch, I've tried git checkout --orphan br
, only to see the files in the working directory change to “Changes to be committed”, and the git log
saying fatal: bad default revision 'HEAD'
.
So what's the advantage of using git checkout --orphan
?
The core use for git checkout --orphan
is to create a branch in a git init
-like state on a non-new repository.
Without this ability, all of your git branches would have a common ancestor, your initial commit. This is a common case, but in no way the only one. For example, git allows you to track multiple independent projects as different branches in a single repository.
That's why your files are being reported as “changes to be committed”: in a git init
state, the first commit isn't created yet, so all files are new to git.