Загрузка данных


Задание 3
Не просто копируйте команды, а старайтесь понять, что происходит на каждом этапе. Читайте вывод git status после каждого действия.
1.	Настройка (сделать один раз):
o	Установите Git.
o	Настройте глобально имя пользователя и email:
bash
git config --global user.name "Ваше Имя"
git config --global user.email "ваша@почта.com"
2.	Создание локального репозитория:
o	Создайте папку для проекта, например, my-git-project.
o	Перейдите в неё в терминале.
o	Инициализируйте Git-репозиторий: git init.

3.	Первый коммит:
o	Создайте файл index.html с простой HTML-разметкой (например, <h1>Мой проект</h1>).
o	Проверьте статус: git status.
o	Добавьте файл в индекс (staging area): git add index.html.
o	Сделайте первый коммит: git commit -m "Initial commit: add main HTML structure".
o	Просмотрите историю: git log.
Работа с изменениями и отмена действий
4.	Внесение и отслеживание изменений:
o	Измените index.html (добавьте абзац <p>...</p>).
o	Создайте новый файл style.css с базовыми стилями.
o	Добавьте только index.html в индекс (git add index.html). Проверьте git status.
o	Теперь добавьте и style.css. Сделайте коммит: git commit -m "Add paragraph and CSS file".
5.	Упражнение на отмену (очень важно!):
o	Сценарий А (отмена в рабочей директории): Случайно удалите строку в index.html. Отмените изменение в этом конкретном файле, вернув его к состоянию последнего коммита: git checkout -- index.html.
o	Сценарий Б (извлечение файла из коммита): Удалите файл style.css полностью (rm style.css). Восстановите его из последнего коммита: git checkout HEAD -- style.css.
o	Сценарий В (отмена индексации): Измените оба файла, добавьте оба в индекс (git add .). Затем решите, что style.css пока рано коммитить. Вытащите его из индекса, оставив изменения: git reset HEAD style.css. Проверьте git status.
Ветвление и слияние (Branching & Merging)
6.	Создание и работа в изолированной ветке:
o	Создайте ветку для новой функции: git branch feature/contact-form.
o	Переключитесь на неё: git checkout feature/contact-form (или git switch feature/contact-form).
o	В этой ветке создайте файл contact.html с формой. Измените index.html, добавив ссылку на контакты. Сделайте коммит.
7.	Слияние ветки в main:
o	Вернитесь в основную ветку: git checkout main.
o	Убедитесь, что файла contact.html тут нет. Это важно!
o	Выполните слияние: git merge feature/contact-form.
o	Просмотрите историю с графом: git log --oneline --graph.
8.	Разрешение конфликта слияния (искусственно создадим, очень важно!):
o	В ветке main измените первую строку в index.html (например, <h1>Главная страница</h1>). Сделайте коммит.
o	Переключитесь обратно в feature/contact-form (или создайте новую feature/header). Измените ту же самую строку по-другому (например, <h1>Добро пожаловать!</h1>). Сделайте коммит.
o	Попробуйте слить ветку в main: git merge feature/contact-form.
o	Git сообщит о CONFLICT. Откройте index.html, увидите специальные разметки (<<<<<<<, =======, >>>>>>>).
o	Вручную отредактируйте файл, оставив нужную вам версию заголовка (или совместив их). Удалите разметку конфликта.
o	Добавьте исправленный файл: git add index.html.
o	Завершите слияние коммитом: git commit.
9.	Просмотр различий:
o	Используйте git diff для сравнения рабочей директории и индекса.
o	Используйте git diff HEAD для сравнения рабочей директории и последнего коммита.
o	Используйте git diff HEAD~1 HEAD для сравнения двух последних коммитов.
Критерии успешного выполнения:
•	Локальный репозиторий с чистой историей (проверьте git log --oneline --graph --all).
•	В истории есть как минимум:
o	Несколько осмысленных коммитов.
o	Ветка feature/*, слитая в main.
o	Файл README.md.
•	Вы самостоятельно разрешили merge conflict.