В этом разделе мы узнаем:
для чего нужен Git-сервер;
чем Git отличается от GitHub и GitLab;
в чем отличие между публичным и приватным хранилищем;
на какие сервера можно выкладывать свои проекты программ;
Фактически, хранилище -- это каталог служебных файлов, обслуживаемый программными инструментами Git. Взаимодействие между каталогом и программой происходит на одном компьютере и поэтому не вызывает проблем. Но для командного взаимодействия хранилище должно быть доступно в сети. Поэтому его переносят на серверную машину. Чтобы данные хранилища стали доступны другим компьютерам, на серверной машине запускают Git-сервер, который обслуживает запросы, исходящих от Git-клиентов на других машинах.

Удаленное Git-хранилище -- это место для хранения, накопления программного кода и обмена им с другими участниками проекта. Процессы разработки строятся вокруг хранилища, а иногда и управляются им. В список наиболее важных процессов входят:
отслеживание ошибок;
автоматическая сборка программы;
документирование проекта;
сопровождение сайта проекта;
автоматическая публикация программы.
Git-сервер с вышеперечисленными сервисами формирует платформу для хостинга и совместной разработки IT-проектов. К таким платформам относятся:
Разработчикам-одиночкам и небольшим командам выгодно использовать готовую платформу. При этом отпадает покупка или аренда физического сервера и его обслуживание. Платформа GitHub предлагает бесплатную услугу по размещению проектов под управлением Git. За дополнительную плату можно получить расширенные возможности ее сервисов. Подавляющее большинство программ с открытым исходным кодом размещаются на платформе GitHub.
Все проекты разработки открытого ПО относятся к публичным: любой желающий может загрузить на свой компьютер исходные коды программы. Частные и коммерческие проекты чаще всего являются приватными, т.е. закрытыми. Доступ к исходным кодам есть только у участников проекта. GitHub позволяет создавать приватные проекты, в которых доступ к хранилищу происходит по разрешению сопровождающего лица. Но сервисы GitHub являются закрытыми и работают только на серверах самой организации. Не все компании могут позволить себе перенести свои исходные коды на неконтролируемые ими сервера. Для таких случаев существует проект GitLab в рамках которого создается ПО для обслуживания процессов разработки программ.
Проект GitLab предлагает альтернативу GitHub. Это не только платформа для хостинга IT-проектов, но и программный сервер для запуска частной платформы.
Перечислим открытые проекты, размещенные на платформах GitHub и GitLab.
Проекты, размещенные на платформе GitHub:
Проекты, размещенные на платформе GitLab:
Проекты, размещенные на серверах разработчиков под управлением GitLab:
Контрольные вопросы¶
Что такое Git-сервер? Какие задачи он выполняет?
Как происходит взаимодействие между Git-сервером и Git-клиентом?
Кто предоставляет услуги Git-сервера? Какие еще услуги они предоставляют дополнительно?
Чем является GitHub?
Чем является GitLab?
Чем отличается публичный проект (хранилище) от приватного?
В чем отличие между GitHub и GitLab?
Какие публичные проекты открытого ПО вам известны?
Какие варианты вы имеете для размещения ваших проектов?
Упражнения¶
Создайте удаленное хранилище и склонируйте его в два локальных.