Code

git checkout: create unparented branch by --orphan
authorErick Mattos <erick.mattos@gmail.com>
Sun, 21 Mar 2010 15:34:38 +0000 (12:34 -0300)
committerJunio C Hamano <gitster@pobox.com>
Sun, 21 Mar 2010 23:43:30 +0000 (16:43 -0700)
commit9db5ebf4022d8e11ac20e75a3d43af161b752fcd
treee1edfca2c85bb339eb7c0234cd85fea9f7ebe141
parentf1ba1c90e1704e937ff59ee510a8d46a5ab52a1a
git checkout: create unparented branch by --orphan

Similar to -b, --orphan creates a new branch, but it starts without any
commit.  After running "git checkout --orphan newbranch", you are on a
new branch "newbranch", and the first commit you create from this state
will start a new history without any ancestry.

"git checkout --orphan" 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.

When creating a branch whose trees have no resemblance to the ones from
the original branch, it may be easier to start work on the new branch by
untracking and removing all working tree files that came from the
original branch, by running a 'git rm -rf .' immediately after running
"checkout --orphan".

Signed-off-by: Erick Mattos <erick.mattos@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-checkout.txt
builtin/checkout.c
t/t2017-checkout-orphan.sh [new file with mode: 0755]