Skip to content

Instantly share code, notes, and snippets.

@andreruffert
Forked from khalsah/deploy.sh
Created April 27, 2012 13:25
Show Gist options
  • Save andreruffert/2509186 to your computer and use it in GitHub Desktop.
Save andreruffert/2509186 to your computer and use it in GitHub Desktop.
Experimental git sync & deploy hooks
#!/bin/sh
LOCAL_BRANCH="master"
LIVE_BRANCH="live"
REMOTE_NAME="deploy"
if [ "$(git symbolic-ref -q HEAD)" != "refs/heads/${LOCAL_BRANCH}" ]; then
echo "Not on ${LOCAL_BRANCH}, not deploying"
exit 1
else
echo "Syncing and deploying"
git push ${REMOTE_NAME} ${LOCAL_BRANCH}:master
git pull ${REMOTE_NAME} ${LIVE_BRANCH}
git push ${REMOTE_NAME} ${LOCAL_BRANCH}:master
fi
#!/bin/sh
cd "$(dirname $0)/.."
export GIT_DIR="."
export GIT_WORK_TREE=".."
if [ "$(git symbolic-ref -q HEAD)" != "refs/heads/live" ]; then
echo "Not on live, not deploying"
exit 1
elif ! ./hooks/sync; then
echo "Sync failed"
exit 1
elif ! git merge --ff-only "refs/heads/master"; then
echo "New changes on live, not deploying"
exit 1
else
echo "Changes deployed"
exit 0
fi
#!/bin/sh
cd "$(dirname $0)/.."
export GIT_DIR="."
export GIT_WORK_TREE=".."
if [ "$(git symbolic-ref -q HEAD)" != "refs/heads/live" ]; then
echo "Not on live, not syncing changes"
exit 1
elif ! git diff-index --exit-code --quiet --cached HEAD --; then
echo "Changes exist in index, not syncing"
exit 1
elif [ -z "$(git status --porcelain)" ]; then
echo "No changes to commit"
exit 0
else
git add --all $GIT_WORK_TREE
git commit -m "$(date "+SYNC %F %T")"
exit 0
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment