I'm using GitHub Pages to host & serve a static website.
The static website has the typical directory structure for an app:
.
├ source/
├ build/
│ └ index.html
├ .gitignore
├ config.rb
├ Gemfile
┆ ...
└ README.MD
index.html
is under build/
, so I want to make that the default www
path.
So when users hit username.github.io
it renders the content within that subdirectory and yet it doesn't show /build/
on the URL, because that's set as the root folder.
Notes:
There is a detailed gist with all the required steps.
The gist is here:
https://gist.github.com/cobyism/4730490
Deploying a subfolder to GitHub Pages
Sometimes you want to have a subdirectory on the
master
branch be the root directory of a repository’sgh-pages
branch. This is useful for things like sites developed with Yeoman, or if you have a Jekyll site contained in themaster
branch alongside the rest of your code.For the sake of this example, let’s pretend the subfolder containing your site is named
dist
.Step 1
Remove the
dist
directory from the project’s.gitignore
file (it’s ignored by default by Yeoman).Step 2
Make sure git knows about your subtree (the subfolder with your site).
git add dist && git commit -m "Initial dist subtree commit"
Step 3
Use subtree push to send it to the
gh-pages
branch on GitHub.git subtree push --prefix dist origin gh-pages
Boom. If your folder isn’t called
dist
, then you’ll need to change that in each of the commands above.
If you do this on a regular basis, you could also create a script containing the following somewhere in your path:
#!/bin/sh
if [ -z "$1" ]
then
echo "Which folder do you want to deploy to GitHub Pages?"
exit 1
fi
git subtree push --prefix $1 origin gh-pages
Which lets you type commands like:
git gh-deploy path/to/your/site