---
title: Publishing on Github Pages
sidebar: mydoc_sidebar
permalink: mydoc_publishing_github_pages.html
summary: "You can publish your project on Github Pages, which is a free web hosting service provided by Github. All you need is to put your content into a Github repo branch called gh-pages and make this your default branch in your repo. With a Jekyll site, you just commit your entire project into the gh-pages branch and Github Pages will build the site for you."
folder: mydoc
---

## Set up your Github repo

1. Make sure you have Git installed. You can download and install [Git for Windows here](https://git-scm.com/download/win) and [Git for Mac here](https://git-scm.com/download/mac). If you're on a Mac, chances are you might already have git installed. You can check by opening up a terminal and typing `which git`.{{end}}
1. Go to [Github.com](http://github.com) and sign up for an account.
2. Click the **+** button in the upper-right corner and select **New repository**.
3. Name the repository something like **mydoctheme**.
4. Type a description..
5. Select the **Initialize this repository with a README** check box.
6. Add a license if desired.
7. Leave the other options at the defaults and click **Create repository**.
8. Click the **Settings** button.
9. Go to your repository's home page, and click the branch drop-down menu.
10. Create a new branch called **gh-pages**.  
11. Click **Settings** and change the default branch to **gh-pages**.
11. Go back to your repository's homepage. With the gh-pages branch selected, copy the **https clone url**:
12. Open a terminal, browse to a convenient location for your project, and type `git clone https://github.com/tomjoht/myreponame.git`, replacing the `https://github.com/tomjoht/myreponame.git` with your repository's https clone URL that you copied.
13. Move the jekyll theme files into this new folder that you just created in the previous step.
14. Open the \_config.yml file and add the following:

   ```
   url: tomjoht.github.io
   baseurl: /myreponame
   ```

   Change the url to your github account name, and the baseurl to your repo name.

## Install Bundler

Bundler is a package manager for Ruby that will install all dependencies you might need to build your site locally. I recommend installing Bundler through homebrew. (Sorry, these instructions apply to Mac only.)

1. Install [homebrew](http://brew.sh/):

   ```
   /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
   ```
2. Install Bundler:

   ```
   gem install bundler
   ```


## Add the github pages gem

1. In terminal, browse to your Jekyll project directory.
2. Type `bundle init`. This creates a Gemfile and Gemfile.lock in your project.
3. Type `open gemfile`. This opens the gemfile in your default text editor.
4. Add the following in the gemfile (replacing the existing contents):

   ```
   source 'https://rubygems.org'
   gem 'github-pages'
   ```

5. Run `bundle install`.
14. Add the new jekyll files to git: `git add --all`.
15. Commit the files: `git commit -m "committing my jekyll theme"`.
16. Push the files up to your github repo: `git push`.

Github Pages will now automatically build your site. Wait a minute or two, and then visit tomjoht.github.io/yourreponame, replacing this path with your github account and branch.

## Customize your URL

You can also customize your Github URL. More instructions on this later....

{% include links.html %}
