Установка Git и базовые команды

В предыдущих модулях мы автоматизировали задачи с помощью Bash-скриптов и управляли файлами в Linux. Но при активной работе возникает проблема: одна ошибка в коде может испортить рабочий скрипт. Чтобы не плодить файлы вроде script_v1.sh и script_v2_final.sh, инженеры используют системы контроля версий.

Git — это распределенная система контроля версий. Она фиксирует изменения в файлах и позволяет возвращаться к любой точке в прошлом. Владение Git в командной строке (CLI) — обязательный стандарт для DevOps-инженера. Это фундамент для методологии GitOps и автоматизации инфраструктуры.

Установка и настройка

В дистрибутивах на базе Debian/Ubuntu (Astra Linux, Ubuntu) выполните:

sudo apt update
sudo apt install git -y

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

git config --global user.name "Ivan Ivanov"
git config --global user.email "ivan@example.com"

Три состояния файла в Git

Git не просто копирует файлы, а оперирует тремя зонами. Путь файла от создания до сохранения в истории показан в Схеме 1.

  1. Working Directory (Рабочая директория) — папка на диске, где вы правите файлы.
  2. Staging Area (индекс) — промежуточный слой. Сюда попадают только те изменения, которые вы планируете включить в следующий «снимок».
  3. Repository (репозиторий) — хранилище, где Git держит историю в виде коммитов.

Репозиторий — это проект, за которым следит Git. Вся история хранится в скрытой папке .git в корне проекта.

Практика: создание первого репозитория

Создадим проект и зафиксируем в нем Bash-скрипт.

Процесс фиксации изменений:

  1. Создайте папку и инициализируйте репозиторий:
mkdir my-devops-project && cd my-devops-project
git init

Команда git init создает пустой репозиторий и папку .git.

  1. Создайте файл:
echo "#!/bin/bash" > backup.sh
  1. Проверьте состояние:
git status

Git подсветит файл красным как Untracked (неотслеживаемый).

  1. Добавьте файл в индекс:
git add backup.sh
  1. Создайте коммит (фиксацию):
git commit -m "feat: add initial backup script"

Коммит — это снимок состояния файлов в конкретный момент. У каждого коммита есть уникальный хэш (ID), автор и описание.

История и игнорирование файлов

Чтобы увидеть список изменений, используйте команду git log. Она выводит историю от новых записей к старым.

git log --oneline --graph

В проектах часто появляются лишние файлы: логи, временные данные или виртуальные окружения Python. Их не нужно сохранять в историю. Для этого создайте в корне файл .gitignore и перечислите в нем маски файлов:

# Игнорировать логи
*.log

# Игнорировать виртуальные окружения Python
.venv/
__pycache__/

Как делать не стоит: Добавлять всё подряд командой git add .. Так в репозиторий попадают секретные ключи, пароли и тяжелые зависимости. Это раздувает проект и создает дыры в безопасности. 🕳️

Упражнение: работа с изменениями

  1. Создайте файл config.yaml.
  2. Добавьте его в индекс (git add) и сделайте коммит.
  3. Измените содержимое config.yaml, но не добавляйте его в индекс.
  4. Выполните git status. Посмотрите, как Git отличает файл в индексе от файла в рабочей директории.
  5. Введите git restore config.yaml, чтобы отменить незафиксированные правки и вернуть файл к состоянию последнего коммита.

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

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

Понравился урок?

Сохраните прогресс и получите персональный курс по любой теме — без форм и паролей

Продолжить в Telegram