Установка сервера Git

GitGitBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Git - это мощная, открытый исходный код распределенная система управления версиями, которая является важной для эффективного управления версиями проектов. Создание собственного сервера Git не только повышает ваше понимание внутренних механизмов Git, но и обеспечивает безопасную среду для управления частными проектами. В этом лабораторном занятии вы пройдете процесс настройки сервера Git на машине с Linux. Несмотря на доступность таких платформ, как GitHub, для размещения кода, частный сервер Git гарантирует, что ваши данные остаются под вашим контролем и в безопасности.

🎯 Задачи

В этом проекте вы научитесь:

  • Устанавливать и настраивать Git в системе Linux
  • Создавать и управлять пользователем, специально предназначенным для операций с Git
  • Генерировать и настраивать SSH-ключи для обеспечения безопасности соединений между вашей локальной машиной и сервером Git
  • Инициализировать и управлять репозиторием Git как локально, так и на сервере
  • Выполнять операции управления версиями, такие как фиксация изменений и отправка их в удаленный репозиторий
  • Проверять настройку путем клонирования репозитория, чтобы убедиться, что все работает корректно

🏆 Достижения

После завершения этого проекта вы сможете:

  • Понимать основы установки и настройки Git, распределенной системы управления версиями, в среде Linux
  • Управлять правами пользователей и безопасностью в системе Unix/Linux для задач, специфичных для приложения
  • Использовать методы безопасного обмена данными между машинами с использованием SSH-ключей, что является важным навыком для управления удаленными серверами
  • Создавать и управлять голыми (bare) репозиториями Git, которые используются для хранения на стороне сервера в операциях с Git
  • Фиксировать и управлять версиями своих проектов с использованием команд Git и отправлять эти изменения на удаленный сервер
  • Проверять и устранять распространенные проблемы в управлении удаленными репозиториями путем клонирования и проверки целостности данных

Установка Git

На этом шаге мы установим Git на вашу машину, которая будет служить как локальным, так и удаленным сервером. Это упражнение подготовит вас к возможной настройке сервера Git на вашем личном компьютере для размещения в локальной сети.

## Обновите базу данных пакетов apt, чтобы убедиться, что вы работаете с последним списком программного обеспечения
sudo apt-get update

## Установите Git с использованием apt-get
sudo apt-get install git

Эта команда обновляет список пакетов, чтобы убедиться, что все последующие установки будут актуальными, а затем устанавливает Git - систему управления версиями, которая будет управлять нашими репозиториями.

Настройка пользователя Git

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

## Создайте нового пользователя для операций с Git
sudo useradd labex-git
sudo passwd labex-git

Установите пароль для пользователя Git (например, "labex"), вам нужно будет ввести пароль дважды.

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

sudo mkdir /home/labex-git
sudo chown -R labex-git:labex-git /home/labex-git

Эта последовательность команд создает нового пользователя, устанавливает пароль и создает специальный рабочий каталог для операций с Git, обеспечивая изоляцию управления репозиториями от других системных активностей.

Генерация SSH-ключей

Использование SSH-ключей упростит наши операции с Git, так как не придется вводить учетные данные при каждой операции. Давайте сгенерируем пару SSH-ключей и настроим их.

## Генерируем пару SSH-ключей
ssh-keygen -t rsa -C "labex@labex.io"

На все запросы нажмите Enter, чтобы использовать настройки по умолчанию. Затем отправьте открытый ключ на машину пользователя Git.

cat ~/.ssh/id_rsa.pub | ssh labex-git@localhost 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'

Здесь вы должны ввести "yes" и ввести пароль, который вы установили ранее.

На этом шаге генерируется пара SSH-ключей, обеспечивающая безопасное соединение между вашими локальной и удаленной настройками. Затем открытый ключ добавляется в список разрешенных на сервере Git, что позволяет осуществлять безопасную связь без необходимости вводить пароль при каждой операции.

Создание удаленного репозитория

Теперь мы переключимся на пользователя Git и настроим голый (bare) репозиторий Git, который подходит для хранения на стороне сервера.

## Переключитесь на пользователя Git
su labex-git

Введите пароль, который вы установили.

Теперь вы можете создать папку для репозитория и инициализировать голый репозиторий.

mkdir -p /home/labex-git/project.git
cd /home/labex-git/project.git
git init --bare

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

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

На этом шаге мы настроим локальный репозиторий на вашей машине. Этот процесс аналогичен тому, что вы обычно делаете на платформе для хранения кода.

Сначала переключитесь обратно на обычного пользователя с пользователя Git:

## Выйти из учетной записи пользователя Git
exit

Теперь создадим директорию для вашего проекта и инициализируем репозиторий Git:

## Создать директорию для вашего проекта
mkdir -p /home/labex/project/labex_project
cd /home/labex/project/labex_project

## Инициализировать репозиторий Git
git init

Это создаст новый репозиторий Git в указанной директории, который будет служить вашим локальным репозиторием для проекта.

Настройте свои данные пользователя Git:

## Установить ваше имя пользователя Git
git config --global user.name "labex"

## Установить ваш email в Git
git config --global user.email "labex@labex.io"

Этот шаг гарантирует, что все ваши коммиты будут записаны с указанием вашего имени пользователя и email, что упростит отслеживание изменений.

Создайте файл для тестирования процесса коммита:

## Создать тестовый документ
echo "I am Labex Readme Doc" > readme.md

Эта команда создаст простой текстовый файл с именем readme.md, содержащий пример сообщения, которое мы будем использовать для тестирования процесса коммита и отправки изменений в удаленный репозиторий.

Коммит и отправка изменений

После инициализации репозитория и настройки конфигурации Git пришло время сделать первый коммит и отправить изменения.

## Добавить все изменения в область подготовки (staging area)
git add.

## Сделать коммит изменений
git commit -m "Initial commit"

## Добавить удаленный репозиторий
git remote add origin labex-git@localhost:/home/labex-git/project.git

Теперь мы можем отправить изменения в удаленный репозиторий.

git push origin master

Проверка настройки

Наконец, давайте клонируем репозиторий, чтобы убедиться, что ваши коммиты корректно размещены на удаленном сервере.

## Перейти в директорию для клонирования
cd /home/labex/project

## Клонировать репозиторий
git clone labex-git@localhost:/home/labex-git/project.git

Вы можете увидеть, что новый репозиторий был клонирован в пути /home/labex/project, а также файл readme.md в нем.

Итог

В этом практическом занятии вы научились настраивать и конфигурировать сервер Git на системе Linux, управлять SSH-ключами и выполнять типичные операции с Git, такие как инициализация репозиториев, коммит изменений и отправка их на удаленный сервер. Это упражнение показало полный жизненный цикл настройки и использования сервера Git, предоставив вам прочный фундамент для безопасного управления своими собственными репозиториями кода. Приобретенные здесь навыки являются не только основой для разработки программного обеспечения, но и улучшают ваше понимание управления версиями проектов в частной, безопасной среде.