Распределенная система управления версиями git

Распределенная система управления версиями git – набор программ, позволяющих работать с одними и теми же файлами несколькими людьми одновременно. При этом можно отслеживать изменения, сделанные каждым из них, вносить эти изменения в удаленные репозитории, а также откатывать их, возвращая файлы к предыдущим версиям.

Выбор платформы и создание проекта

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

Будем считать, что вы уже зарегистрировались в системе. Зайдите под своим логином и нажмите New project, чтобы создать новый проект. Откроется следующее окно:

Выбираем Create blank project и переходим к следующему шагу. Тут нам необходимо задать идентификатор проекта Project slug. Проверяем, что видимость проекта установлена на Private и создаем проект Create Project:

Добавление ssh ключа для работы с gitlab

Для упрощения удаленной работы с платформой gitlab добавим ssh ключ. Сгенерируем новый rsa ключ:

$ ssh-keygen -t rsa -b 2048

Соглашаемся со стандартным путем и пустым паролем на ключ:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/ivan/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Будут сформированы публичный приватный ключи:

Your identification has been saved in /home/ivan/.ssh/id_rsa.
Your public key has been saved in /home/ivan/.ssh/id_rsa.pub.

Если у вас много ключей, то можно указать какой из них использовать с тем или иным хостом. Для этого необходимо внести изменения в файл ~/.ssh/config:

Host gitlab.com
    HostName gitlab.com
    IdentityFile ~/.ssh/id_rsa

Далее копируем данные из файла с публичным ключом ~/.ssh/id_rsa.pub и возвращаемся в gitlab.com. Добавим ssh ключ в gitlab:

  1. Кликаем на иконку пользователя
  2. Выбираем Profile
  3. SSH Keys
  4. Вставляем содержимое публичного ключа
  5. Указываем произвольное имя и дату окончания действия ключа при необходимости
  6. Нажимаем Add:

Отлично, теперь мы сможем работать с репозиториями из командной строки с помощью ssh ключа.

Установка системы управления версиями git

В современных дистрибутивах linux распределенная система управления версиями git поставляется, как правило, уже с системой. Чтобы проверить, установлена ли она у вас, выполните:

$ git --version

Если git установлен, то будет выведена его версия. Если же такая команда не найдена, то требуется установка. Для redhat подобных систем:

$ sudo dnf install git

Для debian подобных систем:

$ sudo apt-get install git

Первоначальная настройка git

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

  1. Глобальный в /etc/gitconfig (использование опции –system)
  2. Пользовательский, который расположен в домашней директории конкретного пользователя ~/.gitconfig или ~/.config/git/config (опция –-global)
  3. Репозитория, хранящийся в каталоге репозитория .git/config (опция —local)

Настройки из конфигурационного файла каждого следующего уровня заменяют настройки из предыдущих уровней. Благодаря этому вы можете настраивать git под конкретного пользователя или репозиторий.

Настроим git для работы из под текущего пользователя. Обязательные настройки – это имя пользователя и email-адрес:

$ git config --global user.name "Ivan Smith"
$ git config --global user.email ivansmith@gmail.com

Чтобы посмотреть текущие настройки и в каких конфигурационных файлах они присутствуют, необходимо выполнить команду:

$ git config --list --show-origin

Мы получим следующий вывод:

file:/home/ivan/.gitconfig      user.name=Ivan Smith
file:/home/ivan/.gitconfig      user.email=ivansmith@gmail.com

Клонирование существующего репозитория

После создании нового проекта в gitlab можно увидеть ссылку на него следующего вида: git@gitlab.com:pocketadmin/my-test, где:

  • git – протокол
  • gitlab.com – сайт платформы
  • pocketadmin – имя пользователя (логин)
  • my-test – название проекта

Скопируем ранее созданный репозиторий:

$ git clone git@gitlab.com:pocketadmin/my-test

После этого в текущей директории будет создан каталог с названием вашего проекта. Перейдем в него:

cd my-test

Далее мы рассмотрим основные команды по работе с репозиторием.

Добавление отслеживания изменений файлов

Создадим файл в нашем каталоге:

$ touch README.md

Если мы выполним проверку:

$ git status

То в выводе увидим, что файл README.md в настоящее время не отслеживается. Чтобы добавить файл под версионный контроль git, необходимо выполнить добавление файла для отслеживания изменений:

$ git add README.md

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

$ git add .

Если мы теперь повторно выполним git status, то увидим, что наш файл будет включен в следующий коммит.

Создание коммита

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

$ git commit -m 'initial commit'

где опция -m – комментарий к коммиту, в нашем случае ‘initial commit’.

Отправка изменений на удаленный репозиторий

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

$ git push

Получение изменений с удаленного репозитория

Чтобы получить изменения с удаленного сервера выполните:

$ git pull

Ваш локальный репозиторий будет синхронизирован с удаленным.

Получение помощи по командам git

Если вам необходима помощь по git, то её всегда можно получить следующим образом:

$ git help <команда>

или

$ git <команда> --help

Например, возвращаясь к настройкам, можно получим справку по работе с confg:

$ git config --help

Оставьте комментарий