В предыдущих модулях мы автоматизировали задачи с помощью 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.
- Working Directory (Рабочая директория) — папка на диске, где вы правите файлы.
- Staging Area (индекс) — промежуточный слой. Сюда попадают только те изменения, которые вы планируете включить в следующий «снимок».
- Repository (репозиторий) — хранилище, где Git держит историю в виде коммитов.
Репозиторий — это проект, за которым следит Git. Вся история хранится в скрытой папке .git в корне проекта.
Практика: создание первого репозитория
Создадим проект и зафиксируем в нем Bash-скрипт.
Процесс фиксации изменений:
- Создайте папку и инициализируйте репозиторий:
mkdir my-devops-project && cd my-devops-project
git initКоманда git init создает пустой репозиторий и папку .git.
- Создайте файл:
echo "#!/bin/bash" > backup.sh- Проверьте состояние:
git statusGit подсветит файл красным как Untracked (неотслеживаемый).
- Добавьте файл в индекс:
git add backup.sh- Создайте коммит (фиксацию):
git commit -m "feat: add initial backup script"Коммит — это снимок состояния файлов в конкретный момент. У каждого коммита есть уникальный хэш (ID), автор и описание.
История и игнорирование файлов
Чтобы увидеть список изменений, используйте команду git log. Она выводит историю от новых записей к старым.
git log --oneline --graph
В проектах часто появляются лишние файлы: логи, временные данные или виртуальные окружения Python. Их не нужно сохранять в историю. Для этого создайте в корне файл .gitignore и перечислите в нем маски файлов:
# Игнорировать логи
*.log
# Игнорировать виртуальные окружения Python
.venv/
__pycache__/
Как делать не стоит:
Добавлять всё подряд командой git add .. Так в репозиторий попадают секретные ключи, пароли и тяжелые зависимости. Это раздувает проект и создает дыры в безопасности. 🕳️
Упражнение: работа с изменениями
- Создайте файл
config.yaml. - Добавьте его в индекс (git add) и сделайте коммит.
- Измените содержимое
config.yaml, но не добавляйте его в индекс. - Выполните
git status. Посмотрите, как Git отличает файл в индексе от файла в рабочей директории. - Введите
git restore config.yaml, чтобы отменить незафиксированные правки и вернуть файл к состоянию последнего коммита.
Мы освоили базовый цикл: изменили, проверили, добавили, зафиксировали. Этого достаточно для работы в одиночку. В реальных проектах над кодом работают десятки инженеров. Чтобы их правки не конфликтовали, используют ветвление.
В следующей теме мы разберем, как создавать параллельные линии разработки и безопасно объединять результаты своего труда с работой коллег.
Понравился урок?
Сохраните прогресс и получите персональный курс по любой теме — без форм и паролей
Продолжить в Telegram