Введение
В этой лабораторной работе вы познакомитесь с базовыми командами для управления локальным Git-репозиторием в операционной системе Linux. Вы начнете с инициализации нового репозитория с помощью git init и настройки данных пользователя через git config — это обязательные первые шаги для любого проекта, использующего Git для контроля версий.
После первоначальной настройки вы отработаете основной рабочий процесс Git. Он включает в себя создание нового файла, его подготовку к отслеживанию с помощью git add и сохранение в истории репозитория с помощью git commit. Затем вы измените файл, зафиксируете изменения и научитесь просматривать полную историю коммитов, используя команду git log, чтобы понимать, как развивался проект.
Инициализация репозитория Git и настройка параметров пользователя
На этом этапе вы начнете с создания нового Git-репозитория и настройки информации о пользователе. Репозиторий Git — это каталог, в котором Git отслеживает изменения файлов вашего проекта. Инициализация репозитория является отправной точкой в использовании Git.
Ваш текущий рабочий каталог — /home/labex/project. Мы будем использовать его для создания нашего репозитория.
Сначала выполните команду git init. Эта команда создает новый пустой Git-репозиторий в текущем каталоге. Для этого она создает скрытый подкаталог с именем .git, в котором содержатся все необходимые служебные файлы репозитория.
git init
Вы должны увидеть сообщение, подтверждающее инициализацию пустого репозитория:
Initialized empty Git repository in /home/labex/project/.git/
Теперь, когда репозиторий создан, необходимо настроить данные пользователя. Git использует эту информацию, чтобы связывать ваше имя и адрес электронной почты с каждым сделанным вами коммитом. Это критически важно для отслеживания того, кто именно внес те или иные изменения в совместном проекте.
Мы воспользуемся командой git config с флагом --global. Флаг --global гарантирует, что эти настройки будут применяться ко всем Git-репозиториям, с которыми вы работаете в этой системе под пользователем labex.
Выполните следующие команды, чтобы установить имя пользователя и адрес электронной почты. В этой лабораторной работе мы будем использовать labex в качестве имени и labex@example.com в качестве почты.
git config --global user.name "labex"
git config --global user.email "labex@example.com"
Эти команды не выводят никаких сообщений в случае успеха. Чтобы убедиться, что настройки применились правильно, вы можете вывести список всех параметров конфигурации Git для вашего пользователя:
git config --list
В выводе отобразится список всех настроек, включая только что заданные user.name и user.email:
user.name=labex
user.email=labex@example.com
...
Вы успешно инициализировали репозиторий Git и настроили данные пользователя. Теперь вы готовы к добавлению файлов и отслеживанию изменений.
Создание и фиксация первого файла с помощью git add и git commit
На этом этапе вы создадите свой первый файл и зафиксируете его в репозитории Git. Фиксация (коммит) — это процесс сохранения снимка подготовленных изменений в истории репозитория. Этот процесс включает две основные команды: git add и git commit.
Для начала создадим простой файл README.md. Это стандартный файл для проектов, содержащий информацию о них. Мы воспользуемся командой echo, чтобы создать файл и добавить в него текст. Все команды должны выполняться в текущем каталоге /home/labex/project.
echo "Hello, Git" > README.md
Теперь, когда файл создан, вы можете проверить состояние вашего репозитория с помощью команды git status. Эта команда показывает состояние рабочего каталога и области подготовки (индекса).
git status
Вывод будет выглядеть следующим образом:
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
README.md
nothing added to commit but untracked files present (use "git add" to track)
Этот текст сообщает, что README.md является «неотслеживаемым файлом» (untracked file). Это означает, что Git видит файл, но он еще не является частью истории версий репозитория.
Чтобы начать отслеживание нового файла, его нужно добавить в область подготовки (staging area). Область подготовки — это промежуточный этап, где вы формируете набор изменений перед их окончательным сохранением. Используйте команду git add, чтобы подготовить README.md.
git add README.md
Эта команда не выводит сообщений. Чтобы увидеть результат, снова запустите git status.
git status
Теперь вывод изменился:
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README.md
Файл теперь указан в разделе «Изменения, которые будут зафиксированы» (Changes to be committed), что означает его нахождение в области подготовки и готовность к следующему коммиту.
Наконец, чтобы сохранить этот снимок в истории проекта, используйте команду git commit. Хорошей практикой считается добавление описательного сообщения к каждому коммиту с помощью флага -m. Это сообщение объясняет, какие именно изменения были внесены.
git commit -m "Initial commit: Added README.md"
После выполнения команды вы увидите подтверждение с краткой сводкой коммита:
[master (root-commit) <commit_hash>] Initial commit: Added README.md
1 file changed, 1 insertion(+)
create mode 100644 README.md
Вы успешно сделали свой первый коммит! Файл README.md теперь официально стал частью истории вашего Git-репозитория.
Изменение файла и фиксация изменений
На этом этапе вы научитесь отслеживать изменения в уже существующем файле. Ключевой особенностью систем контроля версий является возможность видеть, как файлы развиваются со временем. Это достигается путем создания коммитов при каждом обновлении файла.
Мы продолжим работу с файлом README.md в каталоге /home/labex/project. Давайте добавим в него новую строку текста. Снова воспользуемся командой echo, но на этот раз с оператором >>, который добавляет содержимое в конец файла, а не перезаписывает его.
echo "This is a new line." >> README.md
Теперь, когда файл изменен, проверим статус репозитория с помощью git status.
git status
Git сообщит, что файл README.md был изменен:
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: README.md
no changes added to commit (use "git add" and/or "git commit -a")
В выводе указано modified: README.md в разделе «Изменения, не подготовленные для фиксации». Это означает, что Git обнаружил изменение, но оно еще не добавлено в область подготовки для следующего коммита.
Как и в случае с новым файлом, вы должны использовать git add, чтобы подготовить изменения. Это говорит Git, что вы хотите включить именно эти правки в следующий коммит.
git add README.md
И снова команда ничего не выводит. Запустим git status еще раз, чтобы подтвердить, что изменения подготовлены.
git status
Теперь файл отображается в разделе «Изменения, которые будут зафиксированы»:
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: README.md
Теперь, когда изменения подготовлены, вы можете зафиксировать их в истории репозитория. Используйте git commit с понятным сообщением, описывающим обновление.
git commit -m "Added a new line to README.md"
Вы увидите подтверждение коммита:
[master <commit_hash>] Added a new line to README.md
1 file changed, 1 insertion(+)
Вы успешно изменили файл и зафиксировали изменения. Этот рабочий цикл — изменение, подготовка (stage) и фиксация (commit) — является основным процессом, который вы будете постоянно использовать при работе с Git.
Просмотр истории коммитов с помощью git log
На этом заключительном этапе вы научитесь просматривать историю коммитов вашего репозитория. Команда git log — это мощный инструмент, позволяющий увидеть хронологический список всех сделанных коммитов. Это необходимо для понимания того, как развивался проект.
Находясь в каталоге /home/labex/project, выполните команду git log:
git log
Эта команда выведет подробный список сделанных вами коммитов, при этом самый свежий коммит будет отображаться первым. Вывод будет выглядеть примерно так:
commit <commit_hash_2> (HEAD -> master)
Author: labex <labex@example.com>
Date: <commit_date_2>
Added a new line to README.md
commit <commit_hash_1>
Author: labex <labex@example.com>
Date: <commit_date_1>
Initial commit: Added README.md
Разберем информацию по каждому коммиту:
commit: Уникальный 40-символьный хэш SHA-1, который служит идентификатором коммита.Author: Имя и электронная почта человека, сделавшего коммит (на основе ваших настроек Git).Date: Метка времени, указывающая, когда был сделан коммит.- Сообщение коммита: Текст с отступом — это то самое сообщение, которое вы указывали с флагом
-m, объясняющее суть изменений.
Лог отображается через программу-пейджер (например, less). Вы можете прокручивать его вверх и вниз с помощью клавиш со стрелками. Чтобы выйти из режима просмотра лога и вернуться к командной строке, просто нажмите клавишу q.
Для более компактного отображения истории можно использовать флаг --oneline. Это удобно для быстрого обзора.
git log --oneline
Вывод станет намного короче: для каждого коммита в одну строку будут выведены только сокращенный хэш и сообщение:
<short_hash_2> (HEAD -> master) Added a new line to README.md
<short_hash_1> Initial commit: Added README.md
Поздравляем! Вы освоили базовый рабочий процесс: инициализацию репозитория Git, добавление и фиксацию файлов, а также просмотр истории проекта.
Резюме
В ходе этой лабораторной работы вы изучили основные шаги по управлению локальным Git-репозиторием в среде Linux. Вы начали с инициализации нового репозитория в каталоге проекта с помощью команды git init. После инициализации вы настроили важные параметры пользователя — имя и адрес электронной почты — с помощью команды git config --global, чтобы все будущие коммиты имели правильное авторство. Затем вы отработали основной цикл контроля версий: создание нового файла, его подготовка к фиксации с помощью git add и окончательная запись изменений в историю репозитория через git commit.
Кроме того, вы попрактиковались в итеративном процессе внесения и отслеживания изменений. Это включало модификацию существующего файла и повторение цикла подготовки и фиксации для сохранения новой версии. Наконец, вы научились анализировать историю проекта с помощью команды git log, которая отображает хронологический список всех коммитов, включая их уникальные идентификаторы, авторов, даты и пояснительные сообщения. Это обеспечило наглядный обзор всех изменений, внесенных в репозиторий с течением времени.



