Created
November 29, 2013 08:24
-
-
Save mamboer/7702894 to your computer and use it in GitHub Desktop.
easily sync your master to GitHub Pages
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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