One line deployment of your site to gh-pages
Do you want to easily deploy your site to Github pages?
OK, here we go...
You have to upload your complete blog/site to a new Github repository (you know how to do it... if not, probably you need to learn some things before try this one, hehe). As a plus, now your blog/site is version-controlled!
Almost for sure, your site/blog lives in the master branch of the new repository, but you need to generated a
gh-pagesbranch to push your
outputfolder, I mean your site/blog content to deploy... not all the machinery of your site/blog platform (Nikola in my case):
git checkout -b gh-pages
git rm -rf .
git commit -am "First commit to gh-pages branch"
git push origin gh-pages
Now, we will use a git-subtree technique to push the
outputcontent to the
git checkout master
git push origin `git subtree split --prefix output gh-pages`:gh-pages --force
Sweet line... uhh ;-)
Finally, you will need to run the following line every time you want to update your site/blog!
git subtree push --prefix output origin gh-pages
Note: Are you getting
git errors? Just use the sweet line again and force the update...
If you are using Nikola, you can add some of this lines to the
DEPLOY_COMMANDS in your conf.py file and just run
nikola deploy after building your site/blog.
More easier... impossible... ;-)
UPDATE: Not enough happy with step 3 and 4 (essentially because of some
git errors), I figured out a cleaner solution:
New 3. Now, we will use a git-subtree technique to push the
output content to the
gh-pages branch. You will need to run the following lines every time you want to update your site/blog!
git checkout master# you can avoid this line if you are in master...
git subtree split --prefix output -b gh-pages# create a local gh-pages branch containing the splitted output folder
git push -f origin gh-pages:gh-pages# force the push of the gh-pages branch to the remote gh-pages branch at origin
git branch -D gh-pages# delete the local gh-pages because you will need it: ref
Don't forget this blog post is an ipynb file itself! So, you can download it from the "Source" link at the top of the post if you want to play with it ;-)Comments powered by Disqus