I\'m implementing this approach to send updates to my website:
created bare repository to push to
$ mkdir website.git && cd website.git
$ git
From comments above about reliability of targeting specific branches - I found this gist which targets the master branch from post-receive hook.
#!/bin/bash
set -eu
TARGET="/deployment-location-here"
GIT_DIR="/trigger-location-here"
BRANCH="master"
while read oldrev newrev ref
do
# only checking out the master (or whatever branch you would like to deploy)
if [[ $ref = refs/heads/"$BRANCH" ]];
then
echo "Ref $ref received. Deploying ${BRANCH} branch to production..."
git --work-tree="$TARGET" --git-dir="$GIT_DIR" checkout -f
else
echo "Ref $ref received. Doing nothing: only the ${BRANCH} branch may be deployed on this server."
fi
done