Загрузка данных
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 — вывод полного графа истории по всем существующим веткам.