Когда дело доходит до хостинга Git, у вас есть несколько доступных вариантов. GitHub, Gitlab и Bitbucket являются популярными решениями, но стоит рассмотреть возможность использования собственного Git-сервера.
Настройка Git Server позволяет вам создавать частные репозитории без ограничений бесплатных планов провайдеров.
В этой статье мы объясним, как настроить пустой сервер Git в Linux. Эта настройка хороша, если у вас мало репозиториев, а соавторы технически подкованы. В противном случае вам следует рассмотреть возможность установки самостоятельно размещенного git-приложения, такого как Gitea, Gogs или Gitlab.
Сервер Git может быть установлен на любой удаленной машине с Linux или даже в вашей локальной системе.
Настройка Git-сервера
Первым шагом является установка Git на ваш сервер.
Если вы используете Debian или Ubuntu, обновите индекс локального пакета и установите git , выполнив следующие команды от имени пользователя sudo:
|
|
Чтобы установить пакет git на серверах CentOS, введите:
|
|
Затем создайте нового пользователя, который будет управлять репозиториями Git:
|
|
Домашний каталог пользователя установлен в /home/git. Все репозитории будут храниться в этом каталоге. Мы не установили пароль для пользователя «git», вход в систему будет возможен только с использованием ключей ssh.
Переключитесь на пользователя «git» с помощью команды su:
|
|
Выполните следующие команды, чтобы создать каталог SSH и установить правильные разрешения :
|
|
Создайте файл с именем ~/.ssh/authorized_keys, который будет содержать ключи SSH авторизованных пользователей:
|
|
Вот и все. Настройка сервера завершена. Теперь вы готовы создать свой первый Git-репозиторий.
Запустите следующую команду, чтобы запустить новый пустой репозиторий:
|
|
Вы можете назвать каталог, как хотите. Важно создать репозиторий в домашнем каталоге пользователя «git».
|
|
Настройка локального Git-репозитория
Чтобы иметь возможность отправлять локальные изменения git на сервер Git, вы должны добавить свой открытый SSH-ключ локального пользователя в файл authorized_keys удаленного пользователя «git» .
Если у вас уже есть пара ключей SSH, созданная в вашей локальной системе, вы можете отобразить открытый ключ, набрав:
|
|
Вывод должен выглядеть примерно так:
|
|
Если вы получаете сообщение об ошибке: No such file or directory, означающее, что у вас нет пары ключей SSH, созданной на вашем локальном компьютере.
Для создания новой пары ключей SSH используйте следующую команду:
|
|
Скопируйте вывод catкоманды выше и вернитесь в консоль Git-сервера.
На сервере откройте текстовый редактор и вставьте в файл ~/.ssh/authorized_keys открытый ключ, скопированный с локального компьютера:
|
|
Весь текст открытого ключа должен быть в одной строке.
Мы предполагаем, что пакет Git уже установлен на вашем локальном компьютере. Если нет, установите его так же, как описано в предыдущих разделах.
Если у вас есть неверсированный проект, перейдите в каталог проекта. Если вы начинаете с нуля, создайте каталог проекта и перейдите к нему:
|
|
Инициализировать репозиторий git:
|
|
Последний шаг – добавить git remote в ваш локальный репозиторий:
|
|
Не забудьте заменить git_server_ip на ваше имя хоста Git-сервера или IP-адрес.
Чтобы убедиться, что все настроено правильно, создайте тестовый файл:
|
|
Добавьте изменения в область подготовки:
|
|
Зафиксируйте изменения:
|
|
Перенесите изменения локального репозитория в удаленный репозиторий:
|
|
Если все настроено правильно, вывод должен выглядеть примерно так:
|
|
Чтобы добавить нового соавтора, просто скопируйте его открытый SSH-ключ в файл ~/.ssh/authorized_keys пользователя «git» .
Вы можете использовать те же шаги для создания новых репозиториев. Важно отметить, что удаленный репозиторий должен существовать до того, как вы добавите git remote в свой локальный репозиторий.
Заключение
В этой статье мы показали, как настроить свой собственный Git-сервер и создать репозитории.