Simple Locally Compiled GitHub Pages
Sometimes it just takes too long to do something easy. It’s been a
couple years since this blog was active, and when I tried to publish a
post I couldn’t remember how I did it. It was clear
docs was the
source branch and
master was the compiled site, but I couldn’t
remember how to easily do that.
Google was filled with unsatisfying solutions. Use Travis CI? A Gulp task? A 10-15 line shell script with conditionals? Honestly, something so straightforward shouldn’t be so hard.
I finally realized I could accomplish the same thing with a
worktree. I created a worktree called
_site that checked out master.
$ git worktree add $GIT_ROOT/_site/ master
Now, when I publish, I just have to push up a separate commit after building. It’s a shell script, but it has no conditionals and I completely understand what it’s doing.
#!/bin/bash jekyll build pushd _site git add . git commit -m 'Deploy' git push origin master popd