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


1. Глобальная настройка
 * git config --global user.name "Имя Фамилия" — утилита запоминает имя автора для всех будущих коммитов.
 * git config --global user.email "email@example.com" — утилита связывает коммиты с указанным адресом электронной почты.
2. Создание локального репозитория
 * mkdir my-git-project — создание рабочей папки для проекта.
 * cd my-git-project — переход в созданный каталог.
 * git init — инициализация нового репозитория и создание скрытой системной папки .git.
3. Первый коммит
(предварительно создан файл index.html)
 * git status — проверка состояния файлов (новый файл подсвечивается как неотслеживаемый).
 * git add index.html — добавление файла index.html в индекс (staging area).
 * git commit -m "Initial commit: add main HTML structure" — фиксация изменений и создание первого снимок-коммита.
 * git log — вывод истории коммитов репозитория.
4. Внесение и отслеживание изменений
(изменен index.html, создан новый файл style.css)
 * git add index.html — помещение в индекс только измененного index.html.
 * git status — проверка статуса (показывает один файл в индексе, а второй — неотслеживаемый).
 * git add style.css — добавление нового файла стилей в индекс.
 * git commit -m "Add paragraph and CSS file" — сохранение коммита с изменениями обоих файлов.
5. Отмена действий
 * git restore index.html — сброс неиндексированных правок в файле и возврат к состоянию последнего коммита.
 * git restore style.css (или git checkout HEAD -- style.css) — восстановление случайно удаленного из рабочей директории файла.
 * git add . — добавление всех текущих изменений проекта в индекс.
 * git restore --staged style.css (или git reset HEAD style.css) — убирание файла из индекса без потери внесенных в него правок.
6. Ветвление (Branching)
 * git switch -c feature/contact-form (или git checkout -b feature/contact-form) — создание новой изолированной ветки и автоматический переход в нее.
   (создан contact.html, обновлен index.html)
 * git add . — добавление всех файлов новой функциональности в индекс.
 * git commit -m "Add contact form and link in index.html" — фиксация изменений внутри ветки feature/contact-form.
7. Слияние веток (Merging)
 * git switch main — переключение обратно на главную ветку main.
 * git merge feature/contact-form — вливание наработок из ветки feature/contact-form в текущую ветку main.
 * git log --oneline --graph — просмотр краткой истории коммитов с отображением структуры веток.
8. Разрешение конфликта слияния
(изменена 1-я строка index.html в ветке main)
 * git add index.html
 * git commit -m "Update title in main" — фиксация изменений заголовка в ветке main.
 * git switch feature/contact-form — переход в фиче-ветку.
   (изменена 1-я строка index.html на другой текст)
 * git add index.html
 * git commit -m "Update title in feature branch" — фиксация другого заголовка в фиче-ветке.
 * git switch main — возврат в main.
 * git merge feature/contact-form — попытка слияния, вызывающая конфликт (CONFLICT).
   (вручную отредактирован index.html: удалены маркеры <<<<<<<, =======, >>>>>>> и выбран итоговый текст)
 * git add index.html — подтверждение того, что конфликт в файле успешно разрешен.
 * git commit — создание финального коммита слияния (Merge commit).
9. Просмотр различий и итоговая фиксация
 * git diff — просмотр разницы между рабочим каталогом и подготовленным индексом.
 * git diff --staged — просмотр разницы между подготовленным индексом и последним коммитом.
 * git diff HEAD~1 HEAD — сравнение двух последних коммитов в истории.
 * echo "# My Git Project" > README.md — создание файла с описанием проекта.
 * git add README.md
 * git commit -m "Add README file" — коммит файла README.md.
 * git log --oneline --graph --all — вывод полного графа истории по всем существующим веткам.