## Git deploy setup: ### http://www.jeffhoefs.com/2012/09/setup-git-deploy-for-aws-ec2-ubuntu-instance/ ### copy your public key to your ec2 instance: $ cat ~/.ssh/id_rsa.pub | ssh -i ~/.ssh/your_pemfile.pem ubuntu@your_ip_addr "cat>> .ssh/authorized_keys" ### on remote server: create bare git directory $ cd ~ $ mkdir ProjectDir.git && cd ProjectDir.git $ git init --bare ### on remote server: create post-receive hook $ nano hooks/post-receive ```#!/bin/bash echo '--- --- --- --- --- --- --- --- --- --- ---' echo 'Deploying site...' echo '--- --- --- --- --- --- --- --- --- --- ---' if ! [ -t 0 ]; then read -a ref fi IFS='/' read -ra REF <<< "${ref[2]}" branch="${REF[2]}" # Master Branch if [ "master" == "$branch" ]; then echo "Master Post Receive" readonly HTTP_HOST=example.com readonly REMOTE_TARGET=/var/www/webdisk/${HTTP_HOST}/htdocs/ GIT_WORK_TREE=${REMOTE_TARGET} export GIT_WORK_TREE git checkout -f echo "End Post Receive" fi echo '--- --- --- --- --- --- --- --- --- --- ---' ``` $ chmod +x hooks/post-receive ### on local machine: init repo and add remote repository $ git init $ git remote add ec2 ssh://ubuntu@your_ip_addr/home/ubuntu/ProjectDir.git $ git push ec2 +master:refs/heads/master note: only have to use “+master:refs/heads/master for 1st push ## To push to remote repo in future: $ git push ec2 master ### Push to multiple remote repos with one command #### add to .git/config in local repo [remote "all"] url = https://github.com/YourGitAccount/ProjectDir.git url = ssh://ubuntu@your_ip_addr/home/ubuntu/projects/ProjectDir.git #### push to both repos simultaneously $ git push all master