Настройка 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 успешно установлен.

Войдите в 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:
