[[extend-git]]
=== Управление файлами и конфигурационными редакциями с помощью Git

(((Инструмент,Git)))
(((Git инструмент,использование)))

==== Цель

Используйте инструмент контроля версий Git, чтобы управлять редакциями файлов и конфигурации
на вашем сайте.

==== Необходимые знания

* <<install-tools>>

* <<install-decide>>

* <<install-dev-sites>>

* Как настроить Git репозиторий и найти его _клон_ URL. Например, если
вы хотите использовать GitLab для хранения вашего репозитория, смотрите
https://docs.gitlab.com/ee/gitlab-basics/create-project.html[GitLab "Create a project" page]
и
https://docs.gitlab.com/ee/gitlab-basics/command-line-commands.html[GitLab "Command Line basic commands" page].
И если вы хотите использовать GitHub для хранения вашего репозитория, смотрите
https://help.github.com/en/articles/create-a-repo[GitHub "Create a repo" page]
и
https://help.github.com/en/articles/which-remote-url-should-i-use[GitHub "Which remote URL should I use" page].

* Как открыть и использовать окно командной строки и текстовый редактор.

* Для управления конфигурацией, как распаковать и упаковать архивные файлы (например _.zip_
и _.tar.gz_).

==== Требования к сайту

* Вы должны загрузить программное обеспечение для вашего сайта, используя один из методов
в <<install-decide>>. Если вы хотите управлять конфигурацией, вы должны иметь
установленное программное обеспечение и работающий сайт.

* Git клиент должен быть установлен на сервере вашего сайта. Смотрите
https://git-scm.com/[Git] для инструкции.

* Вы должны создать новый репозиторий и знать его Git клон URL.

==== Шаги

===== Инициализация репозитория

Выполните эти шаги один раз, после создания Git-репозитория, для подключения вашей
локальной директории к репозиторию и добавления к нему исходного файла.

. Откройте окно командной строки и перейдите в директорию, где находятся файлы
вашего сайта. Это ваша "верхняя" директория.

. Определите где находится ваш корневой каталог. Если _core_, _modules_, и _themes_
директории расположены в этом каталоге, тогда вы в вашем корневом
каталоге. Если вы использовали Композер для загрузки, тогда эти файлы
находятся внутри _web_ подкаталога (который является вашим корневым каталогом).

. В текстовом редакторе создайте новый файл с именем _.gitignore_ в верхней
директории (или отредактируйте его, если он уже существует). Этот файл содержит список файлов
и директорий который Git будет игнорировать (не добавлять в репозиторий). Например,
_settings.php_ файл для вашего сайта не будет добавлен в Git, потому что он
содержит сведения об учетной записи базы данных, и медиафайлы, загруженные на
ваш сайт (обычно _sites/default/files_) также не должно быть в Git --
цель состоит в том, чтобы в репозитории было программное обеспечение, а не содержимое сайта.

. Убедитесь, что следующие строки находятся в файле _.gitignore_. Если ваш корневой каталог
не является верхней директорией, проверьте каждую из них, чтобы узнать, нужен ли им префикс. Например,
_sites_ возможно потребуется заменить на _web/sites_.
+
----
sites/*/settings*.php
sites/*/files
config
----

. Введите следующие команды:
+
----
git init
git add -A
----

. При желании проверьте список файлов, которые вы будете добавлять в свой репозиторий Git,
введя эту команду и листая (очень длинный) список:
+
----
git status
----

. Введите следующие команды. Вы можете заменить ваше _сообщение коммита_ для
"Initial file add" если вы хотите, и вам нужно будет заменить свой собственный Git
клон URL на URL во второй команде:
+
----
git commit -m "Initial file add"
git remote add origin https://gitlab.com/example-name/example-repo.git
git push -u origin master
----

. Если вы используете хостинг репозитория GitLab, GitHub или другой хост с онлайн
доступом, вы можете перейти на свою страницу репозитория и увидеть, что файлы там.

===== Обновление данных в репозитории

Используйте эти шаги, при обновлении, добавлении или удалении одного или нескольких файлов на
вашем сайте, чтобы отправить изменения (_push_) в ваш репозиторий.

. Откройте окно командной строки, и прейдите в директорию где находятся файлы
вашего сайта.

. Проверьте список файлов, которые были добавлены, изменены или удалены::
+
----
git status
----

. Дополнительно, для текстовых файлов, которые были изменены (не изображения), посмотрите на
различия между новой и старой версиями файла:
+
----
git diff path/to/file.txt
----

. Подготовьте все изменения для следующего коммита и убедитесь, что они внесены:
+
----
git add -A
git status
----

. Вы можете пропустить определенный файл из коммита который вы уже поставили,
или добавить другой файл к уже созданным. Если конкретный файл
или директория продолжает добавляться по ошибке, рассмотрите возможность добавления его в
_.gitignore_ файл, чтобы он был проигнорирован в Git. Пропускающие/добавляющие команды:
+
----
git reset HEAD path/to/file.txt
git add path/to/file.txt
----

. Коммите и пуште ваши изменения. Напишите что-то значимое в сообщении
коммита:
+
----
git commit -m "commit message here"
git push
----

. Если у вас есть другие копии вашего репозитория, обновите их, открыв командное
окно в директории каждой копии и запустив следующую команду:
+
----
git pull
----


===== Создание копии файлов в вашем репозитории

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

. Откройте командное окно в том месте, где вы хотите, чтобы находились файлы.

. Введите следующую команду, заменив URL вашего клона репозитория на
URL и имя подкаталога, в котором вы хотите их использовать для _dirname_:
+
----
git clone https://gitlab.com/example-name/example-repo.git dirname
----

===== Управление конфигурацией в репозитории

. Следуйте инструкциям на <<extend-config-versions>> для экспорта полного
архива конфигурации вашего сайта.

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

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

. Чтобы импортировать обновленную конфигурацию на другой сайт, сделайте архив
конфигурационной директории из вашего репозитория. Затем следуйте инструкциям на
<<extend-config-versions>> для загрузки и импорта этого архива на сайт.


// ==== Expand your understanding

==== Связанные понятия

<<install-dev-sites>>

// ==== Videos

// ==== Additional resources


*Авторы*

Адаптирован и отредактирован https://www.drupal.org/u/jhodgdon[Jennifer Hodgdon] от
https://www.drupal.org/node/803746["Building a Drupal site with Git"],
авторские права 2000-2019 отдельных авторов
https://www.drupal.org/documentation[Drupal Community Documentation].

Переведено https://www.drupal.org/u/MishaIsmajlov[Исмайлов Михаил].
