Удаленные репозитории

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

1. Подключение к удаленному репозиторию

Прежде чем загружать что-либо в удаленный репозиторий, необходимо установить подключение. В данном руководстве мы используем адрес https://github.com/tutorialzine/awesome-project. Однако вам рекомендуется создать собственный репозиторий на GitHub, BitBucket или другом подходящем сервисе. Процесс регистрации и настройки может занять некоторое время, но все эти платформы обладают подробной документацией.
Чтобы связать наш локальный репозиторий с удаленным хранилищем на GitHub, в терминале следует выполнить следующую команду. Не забудьте заменить URI репозитория на ваш собственный адрес.

# Это всего лишь пример. Замените URI на адрес вашего репозитория.
$ git remote add origin https://github.com/tutorialzine/awesome-project.git

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

2. Отправка изменений на сервер

Теперь пришло время перенести наш локальный коммит на сервер. Этот процесс выполняется всякий раз, когда мы хотим обновить данные в удаленном репозитории.
Для этого используется команда push, которая принимает два параметра: имя удаленного репозитория (в нашем случае это origin) и ветку, в которую нужно внести изменения. По умолчанию, для всех репозиториев используется ветка master.

$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 212 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/tutorialzine/awesome-project.git
* [new branch] master -> master

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

3. Клонирование репозитория

На данном этапе другие пользователи GitHub могут просматривать ваш репозиторий. Они могут скачать его содержимое и получить полностью работоспособную копию проекта посредством команды clone.

$ git clone https://github.com/tutorialzine/awesome-project.git

При этом автоматически создается новый локальный репозиторий, устанавливающий GitHub как удаленный репозиторий.

4. Запрос изменений с сервера

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

$ git pull origin master
From https://github.com/tutorialzine/awesome-project
* branch master -> FETCH_HEAD
Already up-to-date.

Поскольку с момента клонирования проекта никаких новых коммитов не сделано, изменений, доступных для скачивания, нет.

Вопросы для самопроверки:

  1. Где хранится локальный коммит до его отправки в удаленный репозиторий?
  2. Как называется команда, используемая для подключения локального репозитория к удаленному?
  3. Какое имя часто используется для обозначения основного удаленного репозитория?
  4. Какие параметры принимает команда `git push` для отправки изменений на сервер?
  5. Как можно получить копию проекта из удаленного репозитория?
  6. Какая команда используется для запроса изменений с сервера?