Отслеживание изменений: Staging Area¶
В Git процесс добавления файлов в коммит состоит из двух этапов: индексирование (staging) и собственно коммит.
Что такое Staging Area?¶
Staging Area (или индекс) — это промежуточная зона, где вы формируете список изменений, которые попадут в следующий коммит. Это позволяет включать в один коммит только логически связанные изменения, даже если вы правили много файлов.
Основные команды¶
Добавление файлов в индекс¶
Добавить конкретный файл:
git add <имя_файла>
Пример: git add index.html
Добавить все измененные файлы в текущей папке и подпапках:
git add .
Добавить все измененные файлы, которые уже отслеживаются (игнорирует новые файлы):
git add -u
Интерактивное добавление (пошаговый выбор изменений):
git add -p
Эта команда покажет изменения по частям (hunks) и спросит, добавлять ли каждую часть в индекс. Очень полезно для разделения больших изменений на несколько логических коммитов.
Проверка статуса¶
Всегда проверяйте, что попало в индекс перед коммитом:
git status
Вывод покажет: - Файлы, готовые к коммиту (зеленым). - Файлы с изменениями, которые еще не добавлены (красным). - Новые неотслеживаемые файлы.
Удаление файла из индекса (отмена добавления)¶
Если вы случайно добавили лишнее, можно убрать файл из индекса, оставив изменения в рабочей директории:
git restore --staged <имя_файла>
Или старая команда (все еще работает):
git reset HEAD <имя_файла>
Удаление файла из репозитория¶
Чтобы удалить файл и из рабочей папки, и из репозитория:
git rm <имя_файла>
Чтобы удалить файл из репозитория, но оставить на диске (например, если забыли добавить его в .gitignore):
git rm --cached <имя_файла>
Переименование и перемещение¶
Git автоматически отслеживает переименование, если вы используете стандартные команды ОС, но лучше делать это через Git:
git mv старый_путь новый_путь
Типичный рабочий процесс¶
- Вносите изменения в код.
- Проверяете статус:
git status. - Добавляете нужные файлы:
git add файл1 файл2. - Еще раз проверяете:
git status. - Делаете коммит:
git commit -m "Описание".
Совет: Старайтесь делать коммиты атомарными — одно логическое изменение = один коммит. Не смешивайте исправление бага и новую фичу в одном коммите.