Введение
В этой лабораторной работе вы сделаете первые шаги в системе контроля версий Git. Вы узнаете, как превратить обычный каталог в репозиторий Git, чтобы отслеживать изменения файлов с течением времени.
Обычная папка станет проектом с контролем версий. Git делает это, создавая скрытый каталог .git, в котором хранятся история, метаданные и ссылки.
Этот скрытый каталог — внутренняя база данных репозитория. Видимые файлы — это содержимое проекта, а .git — механизм, который Git использует для хранения версий и связей между коммитами.
Процесс состоит из трёх основных этапов:
- Инициализация: настройка репозитория.
- Добавление в индекс: подготовка файлов к сохранению.
- Коммит: сохранение снимка файлов в истории репозитория.
К концу лабораторной работы у вас будет локальный репозиторий Git с первым закоммиченным файлом.
Создайте каталог проекта project_x
На этом шаге вы создадите новый каталог для файлов проекта. В Git репозиторий обычно находится внутри одного каталога.
Сначала откройте терминал. Сейчас вы находитесь в каталоге /home/labex/project. С помощью команды mkdir создайте каталог с именем project_x.
Выполните следующую команду:
mkdir project_x
Теперь перейдите в созданный каталог с помощью команды cd:
cd project_x
Важно находиться именно в том каталоге, где вы хотите инициализировать Git. Проверить текущий путь можно с помощью команды pwd:
pwd
В выводе должен появиться путь /home/labex/project/project_x.
Инициализируйте Git внутри каталога с помощью git init
На этом шаге вы превратите обычный каталог в репозиторий Git. Этот процесс называется «инициализацией».
Выполните следующую команду внутри каталога project_x:
git init
Вы должны увидеть вывод, похожий на этот:
Initialized empty Git repository in /home/labex/project/project_x/.git/
Эта команда создаёт скрытый подкаталог .git. В нём находятся все необходимые метаданные и база объектов, которые Git использует для отслеживания проекта. Изменять содержимое .git не требуется, но важно знать, что этот каталог существует.
Таким образом, git init ничего не «загружает» и сам по себе не создаёт историю. Команда только подготавливает каталог, чтобы Git мог локально отслеживать будущие снимки проекта.
Проверить наличие каталога можно, выведя все файлы, включая скрытые:
ls -a
В списке должен присутствовать .git.
Создайте файл readme.txt
На этом шаге вы создадите файл для отслеживания. Пустой репозиторий не очень полезен, поэтому добавим в него содержимое.
Создайте простой текстовый файл с именем readme.txt. Команда echo позволяет одновременно создать файл и записать в него текст.
Выполните следующую команду:
echo "This is my first git project" > readme.txt
Эта команда создаёт файл readme.txt с содержимым «This is my first git project».
Проверьте, что файл создан:
ls
В списке должен появиться readme.txt.
Проверьте состояние репозитория с помощью git status
На этом шаге вы проверите состояние репозитория. Git не начинает автоматически отслеживать каждый созданный файл — его нужно явно добавить.
Команда git status — одна из самых полезных команд Git. Она показывает, какие файлы отслеживаются, какие изменены, а какие добавлены в индекс для коммита.
Выполните команду:
git status
Вы должны увидеть вывод, похожий на этот:
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
readme.txt
nothing added to commit but untracked files present (use "git add" to track)
Обратите внимание: readme.txt указан в разделе Untracked files. Это означает, что Git видит файл, но пока не отслеживает изменения в нём.
Здесь важно понять одно из различий в Git: файл может существовать в рабочем каталоге, но ещё не быть частью системы контроля версий. Git знает о файле, однако тот пока не включён в историю репозитория.
Добавьте файл в область подготовки с помощью git add
На этом шаге вы переместите файл в «область подготовки» (её также называют индексом). В области подготовки формируется снимок набора изменений перед добавлением в основную историю репозитория.
Область подготовки — одна из ключевых концепций Git. Она находится между рабочим каталогом и историей репозитория и позволяет точно выбрать изменения, которые войдут в следующий коммит.
Чтобы начать отслеживать readme.txt и добавить его в область подготовки, используйте команду git add:
git add readme.txt
Теперь снова проверьте состояние репозитория:
git status
Вывод должен выглядеть примерно так:
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: readme.txt
Обратите внимание: теперь readme.txt находится в разделе Changes to be committed. Это означает, что файл добавлен в индекс и готов к коммиту.
Поэтому Git часто описывают как рабочий процесс с тремя состояниями: файлы в рабочем дереве, изменения в области подготовки и снимки в истории коммитов.
Закоммитьте файл с помощью git commit -m
На этом шаге вы окончательно сохраните изменения, находящиеся в области подготовки, в истории репозитория. Это действие называется «коммитом».
Коммит сохраняет снимок проекта и требует сообщения с описанием изменений. Флаг -m позволяет передать это сообщение непосредственно в командной строке.
Выполните следующую команду, чтобы создать коммит:
git commit -m "Initial commit"
Вы должны увидеть вывод, подтверждающий создание коммита:
[master (root-commit) 1a2b3c4] Initial commit
1 file changed, 1 insertion(+)
create mode 100644 readme.txt
Теперь в последний раз проверьте состояние репозитория:
git status
В выводе должно быть указано:
On branch master
nothing to commit, working tree clean
Это означает, что рабочий каталог соответствует последнему коммиту в репозитории. Вы успешно сохранили первую версию проекта!
Итоги
В этой лабораторной работе вы успешно инициализировали локальный репозиторий Git. Вы научились:
- Создавать каталог проекта.
- Инициализировать Git с помощью
git init. - Создавать новый файл.
- Проверять состояние репозитория с помощью
git status. - Добавлять файл в область подготовки с помощью
git add. - Добавлять файл в историю репозитория с помощью
git commit.
Это основные команды, которые вы будете ежедневно использовать при работе с Git. Теперь вы умеете отслеживать изменения, сохранять версии и управлять историей проекта.



