Create a [new Github repository](https://github.com/repositories/new) and name the repository with the format `username.github.com`, where `username` is your GitHub user name or organization name.
Github Pages for users and organizations uses the master branch like the public directory on a web server, serving up the files at your Pages url `http://username.github.com`.
As a result, you'll want to work on the source for your blog in the source branch and commit *the generated content* to the master branch. Octopress has a configuration task that helps you set all this up.
This will generate your blog, copy the generated files into `_deploy/`, add them to git, commit and push them up to the master branch. In a few seconds you should get an email
from Github telling you that your commit has been received and will be published on your site.
**Don't forget** to commit the source for your blog.
If you're having trouble getting Github to publish your site, go to the admin panel for your repository and make sure that the master branch is the default branch.
Github's Project Pages service allows you to host a site for your existing open source project.
Github will look for a `gh-pages` branch in your project's repository and make the contents available at url like `http://username.github.com/project`.
Here's now you can set up Octopress site to publish to your projects gh-pages repository:
1. Ask you for the repository url for your project.
2. Rename the remote pointing to imathis/octopress from 'origin' to 'octopress'
3. Configure your blog for deploying to a subdirectory.
4. Set up a gh-pages branch for your project in the _deploy directory, ready for deployment.
Next run:
```sh
rake generate
rake deploy
```
This will generate your blog, copy the generated files into `_deploy/`, add them to git, commit and push them up to the master branch. In a few seconds you should get an email
from Github telling you that your commit has been received and will be published on your site.
Now you have a place to commit the generated content for your site, but you should also set up repository to store the source for your blog.
After you set up a repository for your blog source, add it as the origin remote.
Many DNS services will let you set a CNAME on a TLD, even though you shouldn’t. Remember that it may take up to a full day for DNS changes to propagate, so be patient.