Skip to content

Instantly share code, notes, and snippets.

@ryanfaircloth
Forked from ramnathv/gh-pages.md
Last active December 1, 2023 21:00
Show Gist options
  • Save ryanfaircloth/bb04a80f9aba5b480f9c3933e2816eaa to your computer and use it in GitHub Desktop.
Save ryanfaircloth/bb04a80f9aba5b480f9c3933e2816eaa 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]
``` {shell}
git symbolic-ref HEAD refs/heads/gh-pages
rm .git/index
git clean -fdx
echo "apiVersion: v1
entries:" > index.yaml
touch .nojekyll
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.

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

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.

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