2.11.6. Работа с 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, настройте аутентификацию по ключам.
Содержание

    (3)