Skip to content

Instantly share code, notes, and snippets.

Created March 28, 2012 15:37
Show Gist options
  • Save ramnathv/2227408 to your computer and use it in GitHub Desktop.
Save ramnathv/2227408 to your computer and use it in GitHub Desktop.
Creating a clean gh-pages branch

Creating a clean gh-pages branch

This is the sequence of steps to follow to create a root gh-pages branch. It is based on a question at SO

cd /path/to/repo-name
git symbolic-ref HEAD refs/heads/gh-pages
rm .git/index
git clean -fdx
echo "My GitHub Page" > index.html
git add .
git commit -a -m "First pages commit"
git push origin gh-pages

Why do we need to do all this, instead of just calling git branch gh-pages. Well, if you are at master and you do git branch gh-pages, gh-pages will be based off master.

Here, the intention is to create a branch for github pages, which is typically not associated with the history of your repo (master and other branches) and hence the usage of git symbolic-ref. This creates a "root branch", which is one without a previous history.

Note that it is also called an orphan branch and git checkout --orphan will now do the same thing as the git symbolic-ref that was being done before. Check out this question on SO2 as well.

Copy link

MJ029 commented Feb 3, 2018

Tanx Works for me.

Copy link

Be careful with git clean -fdx, it will wipe out the files of the folder.

Copy link

mikong commented May 12, 2019


$ git checkout --orphan gh-pages

# preview files to be deleted
$ git rm -rf --dry-run .
# actually delete the files
$ git rm -rf .

Then create index.html, commit and push.

Based on Github Help pages (, but for gh-pages and with a dry run.

Copy link

dirien commented Jun 10, 2021

Thank you! Perfect :)

Copy link

Nice thanks !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment