Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
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.


This comment has been minimized.

Copy link

@MJ029 MJ029 commented Feb 3, 2018

Tanx Works for me.


This comment has been minimized.

Copy link

@glauberm glauberm commented Dec 12, 2018

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


This comment has been minimized.

Copy link

@mikong 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.

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