InMotion Hosting Support Center

In this article, we will be learning how to deploy a project with Git. The goal is to take a project under Git version control and deploy a live "production" version. This can be used to host scripts that are edited frequently or even to launch a static website (or the static files of a site).

This is a great option for anyone using Git as the version control application for their projects.

For housekeeping purposes, we will begin with some assumptions and requirements. We will assume that you already use Git regularly and are familiar with some of the basic commands. Before we begin, make sure you have a project in a local environment, and make sure the files do not contain sensitive information (like passwords). Otherwise, you're ready to go live.

Setting up a Bare Git Repository on Your Server

To deploy our git project to the greater web, we will first log into our VPS/Dedicated server to prepare the environment to receive our git push. This will become the location of a "remote repository". You can have as many remote repositories as you want because each one will have an assigned name.

  1. Log into your VPS/Dedicated server via the shell
  2. Create a directory in your Home directory named whatever you prefer but ending with .git, for example,
    production.git
  3. Enter the new directory created above
  4. Input this command to initiate a "bare" Git repository:
    git init --bare

Preparing a Git Post-receive Hook

Git uses special "hook" files to perform certain actions at different stages. In our example, we are creating a hook that will initiate every time we do a git push to our remote repository. This hook will realize we have made a push and will automatically check out our project files to a directory of our choosing. By choosing a live directory on your server, you will effectively be making your files available to the public. This is our goal. It is also for this reason that we must reiterate: make sure your project does not contain any sensitive information.

  1. Enter the new repository from above
  2. Use a ls command to check if you have a "hooks" directory; the output should show one
  3. Enter the hooks directory
  4. Create and edit a file called "post-receive"; assuming your favorite text editor is Nano, the command would look like this: nano post-receive
  5. Copy and paste the following into the post-receive file, substituting "userna5" with your cPanel username:
    #!/bin/sh
    git --work-tree=/home/userna5/public_html --git-dir=/home/userna5/production.git checkout -f
  6. Exit the text editor
  7. Make the post-receive file executable with the following command:
    chmod +x post-receive

Now our remote production repository is ready to receive our push, we just need to go back to our local working directory to add the InMotion Hosting server to our list of remote repositories.

Adding your Remote Repository on the Local Side

The final steps of this tutorial will take on place on your local computer, where you have all the project files.

  1. Open a shell on your local computer and use cd to navigate to your project directory
  2. Input the following command, substituting "name-of-repo" with a title of your choosing (i.e. "live", "production", "web", "IMH-server", etc.), userna5 for your cPanel username, and "destination" for the primary domain or IP address of your server:
    git remote add name-of-repo userna5@desination:/home/userna5/production.git
  3. Commit or add files as needed and use the following command to deploy your files to the remote repository:
    git push name-of-repo master
  4. When prompted for a password, use your cPanel password

You have completed this tutorial! Well done. You now know how you can use Git to publish your project files to your server.

Support Center Login

Our Login page has moved, Click the button below to be taken to the login page.

Social Media Login

   
Social Login Joomla

Related Questions

Here are a few questions related to this article that our customers have asked:
Ooops! It looks like there are no questions about this page.
Would you like to ask a question about this page? If so, click the button below!
Ask a Question

Post a Comment

Name:
Email Address:
Phone Number:
Comment:
Submit

Please note: Your name and comment will be displayed, but we will not show your email address.

0 Questions & Comments

Post a comment

Back to first comment | top

Need more Help?

Search

Ask the Community!

Get help with your questions from our community of like-minded hosting users and InMotion Hosting Staff.

Current Customers

Chat: Click to Chat Now E-mail: support@InMotionHosting.com
Call: 888-321-HOST (4678) Ticket: Submit a Support Ticket

Not a Customer?

Get web hosting from a company that is here to help. Sign up today!