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

Добро пожаловать в руководство для начинающих по использованию Git в Linux! Это руководство поможет вам начать работу с Git и GitLab и даст базовое понимание того, как пользоваться этими инструментами.

Обзор Git

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

Что такое репозиторий?

repo, сокращение от repository, — это локальная папка под управлением Git с онлайн-копией. Репозиторий GitLab — набор файлов и папок, составляющих проект. В нём могут быть branches — независимые копии одного и того же проекта. Branch — отдельная версия проекта, в которой можно вносить изменения, не затрагивая основную версию. Это удобно для тестирования новых функций или исправления ошибок без нарушения работы основного проекта. Есть локальный repo на жёстком диске и удалённый repo (remote repo), хранящийся в интернете с помощью Git и GitLab.

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

Вам нужно установить Git в системе. В дистрибутивах на базе Debian для установки пакетов программного обеспечения используется команда apt. В данном случае мы устанавливаем Git — пакет, предоставляющий систему контроля версий Git. Команда sudo даёт установщику разрешение на установку в вашей системе.

 sudo apt install git

Доступ к GitLab

Прежде чем использовать GitLab, создайте учётную запись на сайте GitLab, пройдя процесс регистрации.

GitLab требует SSH для безопасной аутентифицированной связи между клиентом (например, вами) и сервером GitLab при выполнении операций Git, таких как clone, push и fetch репозиториев. Clone — создание локальной копии repo, fetch — получение изменений из repo в локальную копию, push — отправка изменений и содержимого в repo на сервере. SSH (Secure Shell) — сетевой протокол для безопасного удалённого доступа; для аутентификации и установления защищённых соединений используются пары ключей. Чтобы сгенерировать пару ключей SSH, используйте команду ssh-keygen в терминале.

 ssh-keygen

Укажите имя файла или нажмите Enter для значения по умолчанию и при необходимости задайте пароль. В домашнем каталоге, в скрытой папке .ssh, теперь находятся два файла id_rsa, если вы использовали имена по умолчанию. Файл .pub — это публичный ключ; его содержимое можно просмотреть в текстовом редакторе.

Войдите в учётную запись GitLab и перейдите в настройки пользователя. Нажмите «SSH Keys» в меню навигации слева. Скопируйте и вставьте публичный ключ в поле Key и задайте понятное название, например PC@Home. Нажмите «Add Key», чтобы сохранить ключ. Публичный ключ SSH добавлен в вашу учётную запись GitLab, и вы можете использовать его для аутентификации в репозиториях GitLab. Проверьте ключи и соединение командой ssh -T — вы должны увидеть приветственное сообщение от GitLab.

 $ ssh -T git@ssh.gitlab.gnome.org
 Welcome to GitLab, @username!

Основные команды Git

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

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

Клонирование — процесс создания локальной копии удалённого репозитория. Это полезно, если вы хотите работать над проектом, который уже есть на GitLab. Чтобы клонировать репозиторий, используйте команду git clone, за которой следует URL репозитория:

git clone https://gitlab.com/username/repository.git

Замените https://gitlab.com/username/repository.git на URL репозитория, который вы хотите клонировать. Эта команда создаст локальную копию репозитория в новом каталоге.

2. Проверка статуса репозитория

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

git status

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

3. Удалённые репозитории

Удалённые репозитории — версии проекта, размещённые в интернете, например на GitLab. Они служат центральным местом хранения кода, к которому могут получить доступ другие. Удалённый репозиторий по умолчанию, который Git создаёт при клонировании проекта, называется origin. С помощью следующих команд можно добавлять, удалять и просматривать удалённые репозитории:

  • Просмотр удалённых репозиториев:

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

    git remote -v

    Эта команда выводит список всех удалённых репозиториев и их URL. Обычно здесь отображается origin.

  • Добавление удалённого репозитория:

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

    git remote add <name> <url>

    Замените <name> на имя удалённого репозитория, а <url> — на URL репозитория.

  • Удаление удалённого репозитория:

    Чтобы удалить удалённый репозиторий, используйте:

    git remote remove <name>

    Замените <name> на имя удалённого репозитория, который нужно удалить.

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

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

git fetch origin

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

5. Сброс локального репозитория

Если нужно сбросить локальный репозиторий так, чтобы он точно соответствовал удалённому, можно выполнить «жёсткий» сброс. Предупреждение: это перезапишет все внесённые локальные изменения.

git reset --hard origin/branch-name

Замените branch-name на имя branch, который нужно сбросить. Эта команда отменит все локальные изменения и сделает локальный репозиторий идентичным удалённому.

6. Просмотр истории коммитов

Чтобы увидеть список изменений, внесённых в репозиторий со временем, используйте:

git log

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

Итог

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