2.10.10. Робота з Git

Якщо вам потрібно, щоб ваш репозиторій був недоступний стороннім і всі дії з ним повністю контролювалися вами, можете створити власний Git-сервер, виконавши дії, описані нижче.

Git на хостингу встановлений за замовчуванням:

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

Виконайте наступні дії:

  1. Перейдіть в домашній каталог:
    cd ~
  2. Створіть каталог для проекту Git:
    mkdir repo.git
  3. Перейдіть в створений каталог:
    cd repo.git
  4. Створюєте порожній репозиторій Git (параметр bare створює репозиторій без робочого каталогу, ви не зможете виконувати з сервера команди git add, commit і т.д.:
    git init --bare
  5. Перевірте, створилися чи каталоги сховища, виконавши команду ls:
    [example@hosting]$ ls
    branches  config  description  HEAD  hooks  info  objects  refs

Для створення Git-сховища існують два основні підходи:

  1. Імпорт в Git вже існуючого проекту або каталогу.
  2. Клонування вже існуючого сховища з сервера командою git clone.

Скористаємося першим.

Виконайте наступні дії:

  1. Створіть в домашньому каталозі користувача каталог для проекту Git і перейдіть в нього, виконавши команди:
    cd ~
    mkdir repo
    cd repo
  2. Ініціалізуйте репозиторій:
    git init
  3. Перевірте, що склалося в каталозі сховища, виконавши команду ls -a:
    [example@hosting]$ ls -a
    .  ..  .git

В цьому каталозі ви будете працювати з файлами проекту, а в прихованому каталозі .git зберігається вся історія Git і мета-інформація вашого проекту, включаючи всі об'єкти (коммітов, дерева, БЛОБ, таги), всі покажчики на різні гілки і багато іншого.

  1. Створіть 3 тестових файлу:
    touch index.php index1.php index2.php
  2. Додайте файли в індекс:
    git add .
  3. Виконайте Комміт файлів:
    git commit -m 'First commit'
  4. Додайте віддалений репозиторій:
    git remote add developer логін@хост:/home/ім'я_хостинг_аккаунта/repo.git
  5. Перевірте, які зміни будуть відправлені на сервер:
    git status

    Видно, що поточною є гілка master і на сервер буде завантажено 3 нові порожні файли:

    [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. Надішліть файли з локального ПК з гілки master на сервер developer:
    git push developer master
  7. Якщо необхідно отримати зміни з сервера, використовуйте команду:
    git pull developer master
Щоб кожен раз при підключенні до віддаленого сервера не вводити пароль від SSH, налаштуйте аутентифікацію по ключам.
Зміст