просто чтобы добавить к очень хорошим ответам уже здесь.
понятие «сервер», когда дело доходит до git, сбивает с толку. Нам нравится думать, что есть какой-то центральный момент, где все «живет», в нашей технической жизни мы считаем, что сервер для этого. Мы считаем эту идею удобной (правильно или неправильно)
Будучи распределенной системой, каждая клонированная копия git-ball является технически репозиторием.
Это, как говорится, еще очень хорошая идея иметь некоторую «центральную» точку управления для вашего репозитория.
Bitbucket или github, или даже ваша собственная коробка, сидящая где-то, может выступать в качестве хранилища «мастера».
Профессиональное использование git обычно организовано с помощью «master» repo, на битбакете, которое доступно для записи только pull requests. Члены команды будут разветвлять репозиторий, выполнять свою работу, а затем, после того, как они отправятся в свой собственный репозиторий, выдайте запрос на перенос на репозиторий «master». Затем может состояться просмотр однорангового кода и успешные запросы на загрузку, объединенные в основной репозиторий.
Это способствует много хорошей практике, а также означает, что у вас есть хороший чистый репозиторий, резервное копирование которого осуществляется на каком-то сервисе elses.
Мы (в моей организации), возможно, более 100 проектов работают таким образом, на многих языках и работают очень хорошо.
Есть несколько рабочих процессов, использующих это в качестве основы. Посмотрите here для разумно хорошее описание.
Это зависит от того, что вы хотите сделать с git на сервере ... – deceze
@deceze Я считаю самый простой вариант тремя клиентами и одним сервером. На сервере сохраняется git-репо. –
Здесь вы найдете полезную информацию: https://git-scm.com/book/en/v1/Git-on-the-Server – xbonez