2 / отчет
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
«Московский технический университет связи и информатики»
Кафедра Программная инженерия
ОТЧЕТ
по лабораторной работе №2
по дисциплине «Основы DevOps»
Тема: «Основы Git»
Выполнил: студент группы БВТ2402
Кудряшов Вадим Георгиевич
Проверил: Тимчук А.В.
Москва, 2025
Цель работы
1. Познакомиться с технологией Git и её концепциями
2. Изучить основные команды и возможности git
Индивидуальное задание
Установили Git на Linux
Создали
новую директорию new_repo
Сделали
ее частично инициализированным
репозиторием
Выполнили git status
Первая
строка – текущая ветка
Создали
новый пустой файл и выполнили git
status
Получили сообщение о не отслеживаемых файлах, включим отслеживание для всех файлов:
Получили сообщение о staged файле
Добавили
пустую директорию empty,
проверяем - git
status.
Увидели, что директория не отслеживается,
поэтому добавили в директорию empty
файл - .gitkeep
Теперь файл отслеживается и информация о директории empty сохраняется. Добавим его в staged и закоммитим файлы:
Создадим мастер репозиторий
--bare используется для создания пустого репозитория, он разрешает пушить root-commit, если его еще нет
Запушим репозиторий
создадим
новый репозиторий, в котором создадим
и закоммитим файл
Попробуем
отправить этот коммит в мастер
репозиторий:
Получили ошибку, т.к. root-commit различаются, git не может соединить два разных репозитория с разной историей коммитов
Склонируем репозиторий
вывод git status аналогичен new_repo
Изменим содержимое файла file.txt
Нам предлагают добавить файл в индекс, либо откатить изменения к зафиксированной версии. Сделаем коммит:
Теперь изменим содержимое файла file.txt в new_repo, но введем другое содержимое, попробуем запушить:
Выдало
ошибку, выполним git
pull,
и получим изменения из удалённого
репозитория:
из за более новой версии, git pull не вернул нам сообщение о конфликте, а заранее спрашивает, какую стратегию объединения выбрать, выполним git pull –no-rebase
получили нужное сообщение о конфликте
--no-rebase, означает, что мы хотим замерджить ветки, раньше это происходило по умолчанию.
Видим конфликтный файл – идем исправлять.
Удаляем маркеры текста, оставляем только один вариант текста
наводим немножко красоту, закомитили наше слияние, все четенько
нюдсы гита
Заключение
В ходе выполнения лабораторной работы были успешно решены следующие задачи:
1. Изучить методические материалы к лабораторной работе;
2. Установить git;
3. Создать новый репозиторий, добавить файлы и создать коммит;
4. Создать и настроить мастер репозиторий, запушить в него изменения;
5. Склонировать мастер репозиторий;
6. Разрешить конфликт версий файла.
Контрольные вопросы
Что такое Git?
Гит – это распределенная система контроля версий с открытым исходным кодом, она хранит инфу в виде снимков файловой системы (snapshots). Обеспечивает целостность данных через SHA-1 хеши
Что такое ветка?
Перещаемый указатель на коммит, она позволяет вести параллельную разработку нескольких версий проекта. По умолчанию основная ветка называется либо master либо main. По сути это просто ссылки на коммиты.
Объясните метод объединения веток fast-forward.
Это простой способ слияния веток, когда ветка в которую мы пушим изменения не имеет собственных коммитов после точки расхождения. Например: есть ветка main и ветка feature. Если main не менялась, а feature ушла вперед (появились новые изменения/коммиты), то при слиянии feature в main, указатель просто передвинется на коммит feature.
Объясните метод объединения веток merge.
Трёхстороннее слияние, используется когда ветки разошлись и имеют независимые коммиты после точки расхождения. Создается специальный merge commit с двумя родителями.
