2.11.6. Working with Git

If you need your repository to be inaccessible to outsiders and all actions with it are completely controlled by you, you can create your own Git server by following the steps described below.

Git on the hosting is installed by default:

[example@hosting]$ git --version
git version 2.16.1

Follow these steps:

  1. Change to your home directory:
    cd ~
  2. Create a directory for your Git project:
    mkdir repo.git
  3. Change to the created directory:
    cd repo.git
  4. Create an empty Git repository (parameter bare creates a repository without a working directory, you cannot execute commands from the server git add, commit etc.:
    git init --bare
  5. Check if the repository directories have been created by running the command ls:
    [example@hosting]$ ls
    branches  config  description  HEAD  hooks  info  objects  refs

There are two main approaches to creating a Git repository:

  1. Importing an existing project or directory into Git.
  2. Cloning an existing repository from the server with the command git clone.

Let's use the first one.

Follow these steps:

  1. Create a directory for the Git project in the user's home directory and change to it by running the commands:
    cd ~
    mkdir repo
    cd repo
  2. Initialize the repository:
    git init
  3. Check what was created in the repository directory by running the command ls -a:
    [example@hosting]$ ls -a
    .  ..  .git

This directory is where you work with the project files, and the hidden .git directory contains all of your project's Git history and meta information, including all objects (commits, trees, blobs, tags), all pointers to various branches, and more.

  1. Create 3 test files:
    touch index.php index1.php index2.php
  2. Add files to the index:
    git add .
  3. Commit the files:
    git commit -m 'First commit'
  4. Add the remote repository:
    git remote add developer login@host:/home/имя_хостинг_account/repo.git
  5. Check what changes will be sent to the server:
    git status

    It can be seen that the current branch is master and 3 new empty files will be uploaded to the server:

    [example@hosting]$ git status
    On branch master
    No commits yet
    Changes to be committed:
      (use "git rm --cached <file>..." to unstage)
            new file:   index.php
            new file:   index1.php
            new file:   index2.php
  6. Upload files from your local PC from the master branch to the developer server:
    git push developer master
  7. If you need to get changes from the server, use the command:
    git pull developer master
To avoid entering the SSH password each time you connect to a remote server, configure key authentication.