Skip to content

Instantly share code, notes, and snippets.

@mamboer
Created November 29, 2013 08:24
Show Gist options
  • Save mamboer/7702894 to your computer and use it in GitHub Desktop.
Save mamboer/7702894 to your computer and use it in GitHub Desktop.
easily sync your master to GitHub Pages
GitHub tip: easily sync your master to GitHub Pages
On the occasion that you’re working on a web-related project using GitHub, you may want to simply mirror your demo pages or entire master branch over to the Github Pages for your project to make them web-accessible. An example case for this would be the development of a JavaScript tool that includes an “examples/” section. It would be most convenient to just let people browse that as a webpage from GitHub, keeping it up to date every time the master branch changes.
GitHub Pages make it possible to serve web content from a branch of your repository, and the automatic page generator is very nice. To make it work in the example above, though, an update to both the base repository and the website requires at least:
git checkout master
git status
git commit -am "Committing changes to master"
git push origin master
git checkout gh-pages
git rebase master # or merge, whatever your preference
git push origin gh-pages
git checkout master
While workflows vary (and some of those commands can be shortened), most require a similar procedure. That’s a lot of work. Guess what? Thanks to a tip from denbuzze on Stack Overflow I found a way to keep gh-pages in sync with master that’s so simple you’ll forget it’s even happening.
In your local clone of your GitHub repository, add these two lines to .git/config, in the [remote “origin”] section:
push = +refs/heads/master:refs/heads/gh-pages
push = +refs/heads/master:refs/heads/master
The section should now look something like this:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:user/repo.git
push = +refs/heads/master:refs/heads/gh-pages
push = +refs/heads/master:refs/heads/master
Now, when you push to GitHub (git push), your gh-pages branch is mirrored and everything in your repository is viewable at http://user.github.com/repository/. That’s pretty sweet.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment