share precommit hook

Today I want to share a code snippet. It used for reminding me run rake preview before git commit.

TL;DR. Because I use jeklly to generate my blog static pages, jeklly is a generator of static blog.
I can write a markdown file (just like this one) and run rake preview, jeklly could help me
generate the html files from markdown. So I must remeber run this command before commit changes.
But I often review my articles and found some mistakes in them, I make a tiny hotfix and commit quickly.
In this case, I forgot to re-generate pages. So I made a hook before git commit which runs this command
automatically and detects some changes occur. The hook will failed when I forget run the command.

Here it is:

./_gen_wiki.sh  # My blog contains a wiki, so it need be generated.
jekyll build
git diff --quiet --exit-code _site/  # Detect uncached changes.
ret=$?
exec 1>&2
RED='