Git Workflow, Deployment and Hooks

Git Deployment

We use a simple post-receive git hook to make a production ready repository that we can push to from our local machines. We’ve also setup SSH keys on the servers we deploy to so we don’t need to enter passwords.


Git Hooks


The most important hook that allows us to add the application repository on the server as a remote on our local machines

cd ..
unset GIT_DIR
env -i git reset --hard
git checkout -f


~$ git remote add production user@server:/var/www/



Our post update hooks run Laravel’s built in migrations and Composer’s update function so our packages stay up to date.

cd /path/to/laravel
echo "----------"
echo "Running PRODUCTION migrations..."
/usr/bin/php artisan migrate --env=production
echo "----------"
echo " "
echo "**********"
echo "Running Composer Update"
unset GIT_DIR;
/usr/bin/php /path/to/composer update
echo "**********"

Which gives us the output of php artisan migrate and composer update in our local shell when we push to a remote repository.

Popular Reads


Keep up to date

Please provide your email address
Please provide your name
Please provide your name
No thanks