Введение
Системные администраторы Linux часто редактируют конфигурационные файлы. Git полезен тем, что он фиксирует, что именно изменилось, когда это произошло и по какой причине. Даже если полноценный рабочий процесс инфраструктуры не требуется, небольшой репозиторий Git поможет вам отслеживать локальные изменения конфигурации до и после внесения правок.
В этой лабораторной работе вы будете отслеживать небольшой конфигурационный файл app.conf, расположенный в /home/labex/project. Вы инициализируете репозиторий Git, настроите локальные данные автора, создадите начальный коммит, отредактируете файл, проанализируете различия (diff) и создадите второй коммит. В данной работе история Git используется как надежный журнал изменений конфигурации.
Проверка конфигурационного файла
На этом этапе вы изучите файл, который будет отслеживаться Git. Перед созданием репозитория важно понимать, какой именно файл имеет значение и каково его текущее содержимое.
Перейдите в директорию проекта LabEx.
cd /home/labex/project
Выведите список конфигурационного файла. Опция -l отображает метаданные, такие как размер, владелец и права доступа.
ls -l app.conf
Прочитайте содержимое файла. Эта конфигурация использует простые строки формата key=value, что часто встречается в конфигурациях приложений Linux.
cat app.conf
Вы должны увидеть log_level=info. Позже вы измените только этот параметр, чтобы изменения в Git были сфокусированными.
Инициализация локального репозитория Git
На этом этапе вы превратите /home/labex/project в репозиторий Git. Репозиторий Git хранит историю в скрытой директории .git. Перед созданием коммитов Git также требует указать имя автора и адрес электронной почты. В реальной работе это может быть настроено глобально, но в лабораторных условиях безопаснее настроить идентификацию только для этого репозитория.
Инициализируйте репозиторий. Опция -b main создает начальную ветку с явным именем main, что позволяет избежать предупреждения Git о ветке по умолчанию.
git init -b main
Установите локальные данные автора. Область действия --local сохраняет эти значения только для данного репозитория. Третья команда отключает цветной вывод Git внутри этого лабораторного репозитория, чтобы краткий вывод статуса, diff и логов было легче читать в терминале браузера.
git config --local user.name "LabEx Learner"
git config --local user.email "learner@example.com"
git config --local color.ui false
Выполните git status --short. Файл должен отобразиться как неотслеживаемый (untracked), так как Git видит его, но еще не отслеживает. В кратком выводе статуса ?? означает неотслеживаемый файл.
git status --short
Коммит начальной конфигурации
На этом этапе вы создадите первый коммит. В Git важно понимать две основные области: рабочее дерево (working tree) и область подготовленных файлов (staging area). Рабочее дерево — это файлы, которые вы видите и редактируете. Область подготовленных файлов — это набор изменений, которые попадут в следующий коммит.
Добавьте в область подготовки только конфигурационный файл. Избегайте использования git add . во время обучения, так как это может случайно добавить не относящиеся к делу файлы.
git add app.conf
Снова проверьте краткий статус. A означает, что файл подготовлен как новый.
git status --short
Создайте первый коммит с понятным сообщением.
git commit -m "Track initial app configuration"
Изучите недавнюю историю. --oneline делает вывод компактным. Опция --no-pager выводит лог прямо в терминал, не открывая интерактивный просмотрщик.
git --no-pager log --oneline
Просмотр и коммит изменений конфигурации
На этом этапе вы отредактируете конфигурацию и проверите изменения перед их коммитом. Это ключевая привычка при работе с Git для отслеживания конфигураций: вносить точечные изменения, проверять их через diff, а затем фиксировать с сообщением, объясняющим суть правок.
Измените log_level с info на debug. Команда sed -i редактирует файл на месте. Шаблон начинается с ^ и заканчивается $, поэтому он изменяет только полную строку log_level=info.
sed -i 's/^log_level=info$/log_level=debug/' app.conf
Покажите разницу между закоммиченной версией и вашим рабочим деревом. --no-pager выводит diff прямо в терминал.
git --no-pager diff -- app.conf
Diff должен показать одну удаленную строку и одну добавленную:
-log_level=info
+log_level=debug
Подготовьте и закоммитьте внесенное изменение.
git add app.conf
git commit -m "Enable debug logging"
Снова посмотрите компактную историю. Теперь вы должны увидеть два коммита.
git --no-pager log --oneline
Наконец, убедитесь, что рабочее дерево для app.conf чистое.
git status --short app.conf
Резюме
Вы отработали базовые операции Git для отслеживания конфигураций Linux. Вы изучили конфигурационный файл, инициализировали репозиторий, настроили локальные данные автора, проверили статус, подготовили конкретный файл, создали начальный коммит, проанализировали точечные изменения и зафиксировали правки конфигурации. Эти навыки помогают администраторам понимать и восстанавливать изменения конфигурации, вместо того чтобы редактировать файлы «вслепую».



