Этап 2 - Основы Git: репозитории и commits
После первого этапа мы выбрали один проект task-service. Теперь его нужно превратить в репозиторий с историей, чтобы дальше можно было показать реальный процесс работы команды.
Git-репозиторий — это обычная папка проекта плюс скрытая директория .git. В этой скрытой папке хранится локальная модель истории: объекты commits, указатели веток, настройки и index для staging.

Что делает git init
Создайте папку task-service-tutorial через Finder, Проводник Windows или IDE. Затем откройте терминал в этой папке и выполните:
git init
После этого Git начинает понимать состояние проекта как историю, а не как просто набор файлов.
.git — это внутренняя книга учета проекта. Файлы остаются теми же, но теперь фиксируется, как они менялись со временем.
Три состояния для одной и той же задачи
На этапе 2 продолжим с теми же файлами:
- Рабочая директория: текущее состояние файлов, которое вы редактируете.
- Staging area: что выбрано для следующего commit.
- История коммитов: уже зафиксированные точки.
Создайте два файла в обычном редакторе или IDE.
README.md:
# Task Service
Образовательный starter для управления задачами в небольшой команде.
task-service.js:
const tasks = [];
export function addTask(task) {
tasks.push(task);
}
Сохраните оба файла. Теперь отдельно спросите Git, что он видит:
git status
git status — это важный индикатор. Он показывает неотслеживаемые, измененные и подготовленные файлы. Упускать этот шаг — частая причина «поймал не тот diff».
Сделайте первый commit:
git add README.md task-service.js
git commit -m "chore: initialize task service scaffold"
Небольшая, но значимая история
Посмотрите историю:
git log
git log --oneline
Компактный вид (--oneline) и детальный (log) нужны оба: один показывает общую линию, другой объясняет детали.
Сделайте ещё два осмысленных коммита. Сначала откройте README.md, добавьте строку и сохраните файл:
- Sort by priority, then due date
Затем зафиксируйте изменение документации:
git add README.md
git commit -m "docs: define default task ordering rules"
После этого создайте notes.txt с содержимым:
- [ ] Add duplicate task guard
И зафиксируйте новый файл:
git add notes.txt
git commit -m "docs: add QA checklist for task behavior"
Теперь у вас есть рабочая история, которую можно анализировать и развивать на этапах с ветками.
Почему цикл обязателен
Любой продвинутый сценарий опирается на базовый цикл:
редактировать → stage → commit → проверять историю → повторять.
Если вы не уверены в этом цикле, branch/pull-request/review превращаются в рутину без осмысления.
| Действие | Что это даёт |
|---|---|
| Инициализация репозитория | Локальную историю, с которой можно работать |
| Первый commit | Базовую точку отсчета |
| Следующие commits | Ясную картину изменений для диагностики и отката |
Контрольная точка: вы можете инициализировать репозиторий и сделать не меньше трёх осмысленных коммитов.