# Использование локального репозитория

Смотреть видеоурок

По этому сценарию вы отправляете изменения из своего локального репозитория в Plesk, а затем Plesk развертывает эти изменения на вашем сайте.

## Создать репозиторий Git

Чтобы создать новый репозиторий Git для своего домена, перейдите на страницу Сайты и домены и нажмите Git. Если вы уже создали репозитории Git для своего домена через Plesk, нажмите Добавить репозиторий. Вы увидите страницу создания нового репозитория:

Прежде всего, нужно выбрать, где будет храниться ваш код. В этом сценарии выберите Локальный репозиторий на вашей рабочей станции.

Репозиторий Git в Plesk. Укажите имя репозитория. По умолчанию используется имя домена с суффиксом .git.

В разделе Ваш сайт укажите следующее:

- Режим развертывания. По умолчанию используется Автоматическое развертывание. Это означает, что все изменения, переданные в репозиторий Git, будут автоматически развернуты на рабочем сайте. Если вы хотите изменить режим развертывания, нажмите ссылку автоматически развернуты и выберите другую опцию в открывшемся окне Режим развертывания. Если выбрано Развертывание вручную, вам придется вручную развертывать файлы из репозитория Git на вашем хостинге. Если выбрано Без развертывания, файлы не будут развернуты на рабочем сайте (это можно использовать, например, для хранения и обмена кодом).

- Целевая папка для публикации файлов Git на вашем сайте. По умолчанию используется папка `/httpdocs`. Вы можете заменить ее на другую имеющуюся папку, нажав на имя папки.

Нажмите OK. Новый репозиторий будет создан и появится на странице Git.

Показываемый URL-адрес репозитория зависит от используемого вами протокола передачи данных. Вы можете выбрать один из следующих протоколов:

1. SSH (только для Linux) - этот протокол используется по умолчанию, если на домене включен SSH-доступ для веб-хостинга. Чтобы настроить доступ по SSH для домена, перейдите на страницу Сайты и домены > Доступ к веб-хостингу и в меню Доступ к серверу по SSH выберите /bin/bash или /bin/sh. В этом случае URL репозитория похож на user1@example.net:~/repos/example.git.
2. HTTPS - этот протокол используется по умолчанию, если запрещен доступ по SSH, и для домена настроен SSL/TLS (Настройки хостинга > Поддержка SSL/TLS). В этом случае URL-адрес похож на https://user1@example.net/plesk-git/example.git.
3. HTTP - этот протокол используется по умолчанию, если запрещен доступ по SSH, и для домена не настроен SSL/TLS. В этом случае URL-адрес репозитория похож на http://user1@example.com/plesk-git/example.git.

Следуйте инструкции, которую можно найти по ссылке Справка, чтобы инициализировать локальный репозиторий.

Когда репозиторий инициализирован, можно просматривать информацию о записях изменений и имя активной ветки на странице Сайты и домены > Git. По умолчанию для работы Plesk с используется основная ветка. Вы можете потом добавить другие ветки (смотрите раздел Изменить ветку или путь).

Теперь вы можете записать изменения файлов вашего сайта в локальный репозиторий и передать их в репозиторий сервера.

## Передать и развернуть файлы

Когда вы записываете изменения файлов вашего сайта из локального репозитория и передаете их в репозиторий сервера, вы можете увидеть информацию о записи изменений на странице Сайты и домены > Git.

По умолчанию в Plesk используется режим Автоматического развертывания. Это означает, что как только файл передается в репозиторий, он немедленно развертывается в целевой папке (при необходимости можно отключить этот режим, смотрите далее раздел Выбрать режим развертывания).

Например, если вы записали изменения и передали файл `index.html` с текстом “Привет! Добро пожаловать на мой сайт!” в репозиторий Git, вы можете тут же открыть адрес сайта и увидеть изменения.

## Изменение ветки или пути

Развертывание из новой ветки

Обычно работают с несколькими ветками в одном репозитории. В каждый момент активной может быть только одна ветка. По умолчанию для развертывания используется `основная` ветка.

Чтобы добавить еще одну ветку, ее нужно создать в вашем локальном репозитории. Например, ветку dev можно добавить с помощью команд:

`git branch dev`

`git checkout dev`

Затем записать изменения файлов в эту ветку и передать в серверный репозиторий с помощью команд:

`git commit -m "изменения в ветку"`

`git push -u origin dev`

Теперь вы можете выбрать одну из двух активных веток. Перейдите на страницу Сайты и домены > Git, нажмите ссылку Изменить ветку и путь и выберите ветку в открывшемся окне в меню Ветка.

Когда вы выберете новую ветку и нажмете ОК, Plesk покажет новую активную ветку.

Изменение пути для развертывания

По умолчанию, для публикации файлов Git на вашем сайте используется папка `/httpdocs`. Если вы хотите изменить путь для развертывания, нажмите ссылку Изменить ветку и путь и выберите новую папку в открывшемся окне. Вы также можете создать новую папку, нажав кнопку Создать новую папку.

## Выбор режима развертывания

Чтобы выбрать режим развертывания для репозитория, нажмите Настройки репозитория и выберите одну из опций в меню Выбрать режим развертывания:

- Автоматическое развертывание. Plesk будет разворачивать все изменения на рабочем сайте, как только они будут переданы в репозиторий Plesk.

- Развертывание вручную. Вам нужно будет вручную развернуть файлы, нажав кнопку Равернуть из репозитория на странице Сайты и домены > Git. Также можно вручную развернуть файлы, нажав кнопку Развернуть возле названия репозитория на странице Сайты и домены.

- Без развертывания (хостинг репозитория). Файлы не будут развернуты на рабочем сайте. Эту опцию можно использовать, например, когда вы хотите использовать репозиторий Git только для хранения кода.

## Включение дополнительных действий развертывания

В большинстве случаев публикации сайта недостаточно для его полного развертывания. Например, при использовании таких платформ, как Ruby on Rails, вам может потребоваться выполнить задачу по переносу данных после развертывания с помощью подобной команды: `bin/rails db:migrate`.

Plesk предоставляет возможность настроить ряд дополнительных действий, которые будут выполняться каждый раз при развертывании фалов на сайте.

Перейдите на страницу Сайты и домены > Git, нажмите Настройки репозитория, выберите Включить дополнительные действия развертывания и укажите shell-команды, которые должны выполняться каждый раз при развертывании из этого репозитория. Каждую команду нужно начинать с новой строки.

Примечание

Если пользователю запрещен доступ по SSH в Linux, все указанные команды будут выполняться в chrooted-окружении. Домашняя папка системного пользователя подписки является корневой папкой файловой системы для этой подписки, и могут быть запущены только исполняемые файлы из ограниченной среды chroot. Например, если путь к вашему сайту `/var/www/vhosts/example.com/httpdocs`, то в chrooted-окружении этот путь будет `./httpdocs`, таким образом, вы не сможете выполнять команды за пределами одного уровня выше папки `/httpdocs`.

## Просмотр журналов записи изменений в репозиторий

Для просмотра всей истории записи изменений в репозиторий для текущей ветки, перейдите на страницу Сайты и домены > Git и нажмите ссылку Журналы записи изменений в репозиторий. Для каждой записи изменений показывается следующая информация: время, уникальный идентификатор, имя пользователя и сообщение о записи изменений. Нажмите Обновить, чтобы обновить журнал записи изменений.

Вы можете использовать фильтры по любому из параметров для поиска в журнале записи изменений. Например, вы можете найти все записи изменений, сделанные определенным пользователем начиная с определенной даты. Нажмите кнопку , введите параметры поиска и нажмите Поиск.

## Переименование или удаление репозитория

Вы в любое время можете переименовать репозиторий. Например, завершив развертывание, вы можете захотеть переименовать репозиторий из website-dev в website, чтобы не запутаться. Перейдите на страницу Сайты и домены > Git, нажмите Настройки репозитория, и укажите новое имя в поле Имя репозитория.

Обратите внимание на то, что после переименования репозитория вам нужно в настройках своего локального репозитория указать новый URL-адрес переименованного репозитория с помощью команды:

`git remote set-url origin [новый URL]`

Например, при переименовании репозитория из example в example1, выполните команду:

`git remote set-url origin user1@example.com:~/repos/example1.git`

Чтобы удалить репозиторий, нажмите ссылку Удалить репозиторий на странице Сайты и домены > Git. В этом случае Plesk удалит только репозиторий, целевая папка с опубликованными данными останется.