Как настроить Git-сервер

Частный сервер Git

Что касается Git-хостинга, у вас есть несколько вариантов. GitHub, Gitlab и Bitbucket — популярные решения, но запуск собственного Git-сервера — это альтернатива, которую стоит рассмотреть.

Настройка Git-сервера позволяет вам создавать приватные репозитории без ограничений бесплатных планов провайдеров.

В этом руководстве мы объясним, как настроить «голый» Git-сервер на Linux. Этот вариант хорошо подходит, если у вас немного репозиториев, а участники хорошо разбираются в технологиях. В противном случае вам стоит рассмотреть возможность установки собственного Git-приложения, например, Gitea, Gogs или Gitlab .

Сервер Git можно настроить на любой удаленной машине Linux или даже в вашей локальной системе.

Настройка Git-сервера

Первый шаг — установка Git на ваш сервер.

Если вы используете Debian или Ubuntu, обновите локальный индекс пакетов и установите git, выполнив следующие команды от имени пользователя sudo:

 sudo apt update && sudo apt install git

Чтобы установить пакет git на серверы CentOS, введите:

 sudo yum install git

Затем создайте нового пользователя , который будет управлять репозиториями Git:

 sudo useradd -r -m -U -d /home/git -s /bin/bash git

Домашний каталог пользователя — /home/git . Все репозитории будут храниться в этом каталоге. Пароль для пользователя «git» не установлен, вход будет возможен только по SSH-ключу.

Переключитесь на пользователя «git» с помощью команды su :

 sudo su - git

Выполните следующие команды, чтобы создать каталог SSH и установить правильные разрешения :

 mkdir -p ~/.ssh && chmod 0700 ~/.ssh

Создайте файл с именем ~/.ssh/authorized_keys в котором будут храниться SSH-ключи авторизованных пользователей:

 touch ~/.ssh/authorized_keys && chmod 0600 ~/.ssh/authorized_keys

Вот и всё. Настройка сервера завершена. Теперь вы готовы создать свой первый Git-репозиторий.

Выполните следующую команду, чтобы инициировать новый пустой репозиторий:

 git init --bare ~/projectname.git

Вы можете назвать каталог как угодно. Важно создать репозиторий в домашнем каталоге пользователя «git».

 Initialized empty Git repository in /home/git/projectname.git/

Настройка локального репозитория Git

Чтобы иметь возможность отправлять локальные изменения git на сервер Git, вам нужно добавить открытый ключ SSH локального пользователя в файл authorized_keys удаленного пользователя «git».

Если у вас уже есть пара ключей SSH, созданная в локальной системе, вы можете отобразить открытый ключ, введя:

 cat ~/.ssh/id_rsa.pub

Вывод должен выглядеть примерно так:

 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDd/mnMzHwjUzK8g3ldfsfRpJuC16mhWamaXRk8ySQrD/dzpbRLfDnZsLxCzRoq+ZzFHGwcQlJergtergdHGRrO8FE5jl3IWRRp+mP12qYw== danny@linuxgazette.ru

Если вы получили сообщение об ошибке « No such file or directory , это означает, что на вашем локальном компьютере не сгенерирована пара ключей SSH.

Для генерации новой пары ключей SSH используйте следующую команду:

 ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"

Скопируйте вывод команды cat , приведенной выше, и вернитесь в консоль сервера Git.

На сервере откройте текстовый редактор и вставьте открытый ключ, скопированный с локальной машины, в файл ~/.ssh/authorized_keys :

 sudo nano /home/git/.ssh/authorized_keys

Весь текст открытого ключа должен располагаться на одной строке.

Мы предполагаем, что пакет Git уже установлен на вашем локальном компьютере. Если нет, установите его так же, как описано в предыдущих разделах.

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

 cd /path/to/local/project

Инициализируем git-репозиторий:

 git init .

Последний шаг — добавить git remote в ваш локальный репозиторий:

 git remote add origin git@git_server_ip:projectname.git

Не забудьте заменить git_server_ip на имя хоста или IP-адрес вашего Git-сервера.

Чтобы проверить, что все настроено правильно, создайте тестовый файл :

 touch test_file

Добавьте изменения в промежуточную область:

 git add .

Зафиксируйте изменения:

 git commit -m "descriptive message"

Перенесите изменения локального репозитория в удаленный репозиторий:

 git push -u origin master

Если все настроено правильно, вывод должен выглядеть примерно так:

 Counting objects: 3, done. Writing objects: 100% (3/3), 218 bytes | 218.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To git_server_ip:projectname.git * [new branch] master -> master Branch 'master' set up to track remote branch 'master' from 'origin'.

Чтобы добавить нового соавтора, просто скопируйте его открытый ключ SSH в файл ~/.ssh/authorized_keys пользователя «git».

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

Заключение

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

Если у вас возникла проблема или вы хотите оставить отзыв, оставьте комментарий ниже.

мерзавец

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *