In this tutorial, we will learn how to setup and push code from local machine to live server using Git.

I assume that you have basic knowledge of Git and Linux ubuntu. Git is used for version control and we can keep track of each task and team can sync up with each other’s work.

First, create your repo on a local machine.

cd /var/www/html (ubuntu server has this path)

mkdir project

cd project

git init OR git clone URL of your project

git checkout your branch

We are done with setting up project using git on the local machine. Now we will setup server to listen whenever we push anything from the local machine.

Create Repository on server

cd /var

mkdir repo

cd repo

mkdir site.git

cd site.git

git init --bare

–bare indicate no source files it will have only version control.

Now we will create a hook to receive the update from the local machine. In the git, all the repositories have default folder ‘hooks’ and populated with some pre-default sample hooks. We can create custom hook e.g. pre-receive, post-receive hook to perform actions.

You can type the following command to view all files and folder and create a post-receive hook.


cd hooks

cat > post-receive

When we type above command it will give blank line where we can type following command.


git --work-tree=/var/www/html/project-folder --git-dir=/var/repo/site.git checkout branchname -f

Press ‘control+d’ to save above command, Now change the permission for post-receive using the following command.

chmod +x post-receive

Now again back to the local machine. (assuming you are in your project folder e.g. /var/www/HTML/project-folder)

Run the following command

git remote add live ssh://user@domain or IP address/var/repo/site.git

Here we have just added remote URL that points to our live server. You can now edit your files and add it with the commit message.

git add .

git commit -m “Commit message”

We used ‘.’ dot with add command that will add all files. Now, we can push a change to our live server using following command. Here we used ‘live’ as we previously added it using ‘git remote add live’ command.

git push live branchname

If you get successful message, then our deployment is successful 🙂

Want to work with us? We're hiring!