git init --bare blog.git
     cat << EOF > blog.git/hooks/post-update
     #!/bin/sh
-    BLOGDIR=~/blog
-    GIT_WORK_TREE=\$BLOGDIR git checkout -f
-    cd \$BLOGDIR
+    blog_dir=~/blog
+    export GIT_DIR=\$(pwd)
+    export GIT_WORK_TREE="\$blog_dir"
+    git checkout -f
+    cd "\$GIT_WORK_TREE"
     redo
+    git add metadata/author metadata/url metadata/title metadata/*.tmpl metadata/*.automatic_metadata metadata/automatic_metadata
+    status=\$(git status -s)
+    n_updates=\$(printf "$status" | grep -vE '^\?\?' | wc -l)
+    if [ "\$n_updates" -gt 0 ]; then
+      git commit -a -m 'Update metadata'
+    fi
     EOF
     chmod a+x blog.git/hooks/post-update
 
     git commit -m 'set up blog metadata'
     git push origin master
 
+If successful, the git hook will furthermore commit some ~/blog/metadata/ files
+generated by redo, that can be pulled into the client-side local repository:
+
+    git pull origin master
+
 bugs and peculiarities
 ----------------------