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

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

Конечно, мы также можем настроить собственный Git-сервер, чтобы использовать его как частный репозиторий.

Использование bare-репозитория

1. Установите Git

Установите Git на Ubuntu Server:

sudo apt install git

Если ваша система — Centos/RedHat, команда установки:

yum -y install git-core

Команда установки Fedora:

# yum install git (Fedora 21 及之前的版本)
# dnf install git (Fedora 22 及更高新版本)

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

$ groupadd git
$ useradd git -g git

2. Создайте bare-репозиторий

Войдите как пользователь Git, затем создайте bare-репозиторий в его домашнем каталоге.

$ sudo su - git
Сначала выберите каталог в качестве Git-репозитория, предположим, это /home/gitrepo/example.git, и выполните следующую команду в каталоге /home/gitrepo:
$ cd /home
$ mkdir gitrepo
$ chown git:git gitrepo/
$ cd gitrepo

$ git init --bare example.git

Приведенная выше команда создает пустой Git-репозиторий. Git-репозитории на сервере обычно заканчиваются на.git.git. Затем смените пользователя репозитория на git (если с ним работает другой пользователь, например root):

$ chown -R git:git example.git

3. Создайте вход по сертификату

Добавьте свой открытый ключ в ~/.ssh/authorized_keys, чтобы разрешить удаленный доступ.

Соберите открытые ключи всех пользователей, которым нужно войти. Открытые ключи находятся в файле id_rsa.pub. Импортируйте наши открытые ключи в файл /home/git/.ssh/authorized_keys, по одному на строку.

Если файл не существует, создайте его:

$ cd /home/git/
$ mkdir .ssh
$ chmod 755 .ssh
$ touch .ssh/authorized_keys
$ chmod 644 .ssh/authorized_keys
# 在文件中添加你的 SSH 公钥

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

$ git clone [email protected]:/home/gitrepo/example.git
Cloning into 'example'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

192.168.45.4 — это IP Git-сервера. Вам нужно изменить его на IP вашего собственного Git-сервера.

Таким образом, установка нашего Git-сервера завершена.


Использование GitLab

GitLab — это мощный инструмент управления Git-сервисами, подходящий для средних и крупных команд, предоставляющий богатые возможности, такие как управление пользователями, CI/CD, проверка кода и т. д.

1. Установите GitLab

Согласноофициальной документации GitLabустановите GitLab.

Например, в Ubuntu:

# sudo apt-get update
# sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
# curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
# sudo EXTERNAL_URL="http://yourdomain" apt-get install gitlab-ee

EXTERNAL_URL="http://yourdomain" Чтобы задать собственный домен или публичный IP, например:

sudo EXTERNAL_URL=101.132.XX.XX yum install -y gitlab-ee

2. Настройте GitLab

После установки откройте браузер и перейдите по адресу http://yourdomain, чтобы настроить учётную запись администратора.

Когда появится похожее эхо-сообщение, как показано ниже, это означает, что GitLab успешно установлен.

3. Создайте проект

Войдите в GitLab, создайте новый проект, имя пользователя —root。

Получите пароль для входа:

sudo cat /etc/gitlab/initial_root_password

Результаты следующие:

Для первого входа используйте имя пользователяroot:

4. Сгенерируйте файл пары ключей и получите открытый ключ

Установите инструмент Git (пропустите, если уже установлен):

sudo apt-get install git

Сгенерируйте файл пары ключей id_rsa:

ssh-keygen

В процессе генерации пары ключей система предложит ввести каталог для хранения пары ключей (по умолчанию .ssh/id_rsa в домашнем каталоге текущего пользователя, например /home/test/.ssh/id_rsa) и пароль для пары ключей. Вы можете ввести их вручную или нажать Enter, чтобы оставить значения по умолчанию.

После генерации отображается следующая информация:

Просмотрите и скопируйте содержимое файла открытого ключа id_rsa.pub:

cat .ssh/id_rsa.pub

Отображается информация, аналогичная следующей:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQVwWjF3KXmI549jDI0fuCgl+syJjjn55iMUDRRiCd/B+9TwUda3l9WXH5i7RU53QGRCsDVFZxixLOlmXr9E3VSqkf8xXBnHs/5E2z5PIOCN0nxfB9xeA1db/QxPwK4gkHisep+eNHRn9x+DpCYDoSoYQN0nBg+H3uqfOqL42mJ+tqSfkyqbhjBf1kjtDTlBfVCWtI0siu7owm+c65+8KNyPlj5/0AyJ4Aqk1OX2jv+YE4nTipucn7rHwWuowasPU86l+uBsLNwOSb+H7loJvQyhEINX2FS1KnpRU+ld20t07n+N3ErfX5xBAGfxXpoN9BKKSP+RT7rvTeXTVE**** [email protected]****

5. Создайте проект

На главной странице GitLab нажмите опцию Создать проект:

Нажмите Создать пустой проект, укажите Имя проекта и URL проекта, затем нажмите Создать проект:

В этой статье проект mywork используется в качестве примера для иллюстрации.

6. Добавьте SSH-ключ

На странице текущего проекта нажмите Добавить SSH-ключ:

Вставьте содержимое файла открытого ключа id_rsa.pub в текстовое поле Ключ:

Нажмите Добавить ключ. После добавления SSH-ключа это отображается на следующем рисунке:

Скопируйте ссылку для клонирования. Эта ссылка нужна при выполнении операций клонирования:

Использование GitLab

1. Настройте персональные данные для использования репозитория Git, включая имя пользователя и адрес электронной почты.

git config --global user.name "testname" 
 
git config --global user.email "[email protected]" 

2. Клонируйте созданный проект локально.

git clone [email protected]:root/mywork.git

3. Загрузите файл на сервер GitLab:

Перейдите в каталог проекта:

cd mywork/ 

Создайте целевой файл, который нужно загрузить в GitLab:

echo "test" > /home/test/test.sh

Скопируйте целевой файл или каталог в каталог проекта:

cp /home/test/test.sh ./ 

Добавьте файл test.sh в индекс:

git add test.sh

Выполните коммит файла test.sh в локальный репозиторий:

git commit -m "test.sh"

Синхронизируйте файл с сервером GitLab:

git push -u origin main

На веб-странице убедитесь, что загруженный файл test.sh синхронизирован с сервером GitLab:

Другие расширения