Полный рабочий процесс Git
Теперь, когда вы знаете основные команды, давайте посмотрим, как они складываются в ежедневный рабочий процесс. Это цикл, который вы будете повторять сотни раз как разработчик.
Основной цикл
Каждое изменение, которое вы вносите в Git, следует этому шаблону:
Редактирование --> Статус --> Индексация --> Коммит
^ |
| |
+----------------------------------------------+
- Редактируйте файлы в вашем редакторе
- Статус --- выполните
git status, чтобы увидеть, что изменилось - Индексация --- добавьте нужные изменения с помощью
git add - Коммит --- сохраните снимок с помощью
git commit - Повторите
Типичная сессия
Вот как выглядит реальный рабочий процесс:
# 1. Проверьте, где вы находитесь
git status
# 2. Внесите изменения
# (редактируйте файлы в вашем редакторе)
# 3. Просмотрите, что изменилось
git diff
# 4. Проиндексируйте конкретные файлы
git add src/feature.js
git add src/feature.test.js
# 5. Перепроверьте, что проиндексировано
git diff --staged
# 6. Зафиксируйте с понятным сообщением
git commit -m "Add user profile feature"
# 7. Проверьте в логе
git log --oneline -3
Выбор того, что коммитить
Не каждое изменение должно попадать в один коммит. Хорошая практика --- делать маленькие, сфокусированные коммиты, каждый из которых делает одну вещь:
- Одно исправление бага = один коммит
- Одна фича = один коммит (или небольшая серия)
- Рефакторинг = отдельный коммит от изменений поведения
Используйте git add избирательно, чтобы индексировать только файлы, относящиеся к каждому коммиту.
Ментальная модель
Думайте о рабочем процессе Git как о трёх областях:
| Область | Что там находится | Команда для продвижения |
|---|---|---|
| Рабочая директория | Ваши текущие правки | git add |
| Область индексации | Изменения, готовые к коммиту | git commit |
| Репозиторий | Постоянная история | git log для просмотра |
Файлы перемещаются слева направо. Вы контролируете, что именно продвигается на каждом шаге.
Краткий справочник
| Команда | Назначение |
|---|---|
git status | Посмотреть, что изменилось |
git diff | Увидеть непроиндексированные изменения подробно |
git add <file> | Проиндексировать файл для коммита |
git diff --staged | Увидеть проиндексированные изменения подробно |
git commit -m "msg" | Сохранить снимок |
git log --oneline | Просмотреть недавнюю историю |
git commit --amend | Исправить последний коммит |
Что дальше?
Освоив эти основы, вы готовы изучить ветвление --- главную возможность Git, которая позволяет работать над несколькими задачами одновременно, не мешая друг другу.