Git: репозиторий, рабочее дерево и индекс
Git хранит историю изменений в репозитории. Чтобы пользоваться им осознанно, нужно понять три области: рабочее дерево, индекс и история коммитов.
Рабочее дерево - это файлы проекта на диске. Индекс, или staging area, - промежуточная область, куда вы добавляете изменения перед коммитом. История - набор сохраненных коммитов.
Главная схема
- Вы меняете файлы в рабочем дереве.
- Командой
git addвыбираете изменения для коммита. - Командой
git commitсохраняете выбранные изменения в историю.
Проверка состояния
git status
git status --shortgit status показывает, какие файлы изменены, какие подготовлены к коммиту и что Git предлагает сделать дальше. Это команда, которую стоит запускать часто.
Почему нужен индекс
Индекс позволяет собрать коммит только из части изменений. Например, вы поправили README и одновременно начали эксперимент в коде. В коммит можно добавить только README, а эксперимент оставить незакоммиченным.
git add README.md
git commit -m "Обновить описание проекта"Что такое хороший коммит
Хороший коммит отвечает на один логический шаг: добавить конфиг, исправить ошибку, обновить документацию, подключить тест. Если в один коммит попали unrelated-изменения, историю сложнее читать и откатывать.
Понимание рабочего дерева и индекса делает Git предсказуемым. Вы перестаете бояться команды commit, потому что понимаете, какие именно изменения попадут в историю.