Рабочий каталог, область подготовки и локальный репозиторий: три локальные зоны Git
By Mirko Peters ·
Разберитесь в трёх локальных зонах Git: узнайте, как рабочий каталог, область подготовки и локальный репозиторий работают вместе и дают вам точный контроль над историей проекта.
Automatically translated with AI from the original post. Read the English original

Понимание трёх локальных областей Git — рабочего каталога, области подготовки и локального репозитория — необходимо для перехода от хаотичного копирования файлов к осознанному контролю версий. В этом руководстве объясняется, как работает каждая зона, по аналогии с физическим офисом, чтобы вы получили точный контроль над историей проекта.
Главное
- Рабочий каталог — это папка активного проекта, похожая на захламлённый рабочий стол, на котором вы свободно редактируете файлы.
- Область подготовки работает как лоток для проверки: она содержит только те изменения, которые вы отобрали с помощью
git addдля следующей контрольной точки. - Локальный репозиторий выступает в роли картотеки, навсегда сохраняя подготовленные изменения в виде структурированной истории коммитов.
- Команды git status и git diff служат проверками безопасности: они позволяют изучить, что происходит в ваших локальных областях, прежде чем фиксировать историю.
- Понимание этих трёх зон предотвращает случайные коммиты и помогает поддерживать историю проекта аккуратной и логичной.
Рабочий каталог: ваш активный стол
Когда вы открываете папку проекта на компьютере и начинаете вносить правки, вы работаете непосредственно в первой локальной зоне Git: рабочем каталоге. Представьте эту папку как свой физический рабочий стол. Она содержит все файлы, которые вы открываете, создаёте, изменяете или удаляете, включая код сайта, документацию, конфигурационные файлы и изображения.
Как и настоящий стол, рабочий каталог может быстро захламиться, пока вы экспериментируете. Вы можете начать переписывать кнопку входа, заметить опечатку в файле readme и создать экспериментальный скрипт для проверки нового макета. Git не загоняет каждое изменение в вашу постоянную историю только потому, что оно произошло в этой папке. У вас есть свобода пробовать идеи, ошибаться и оставлять работу незавершённой, не меняя при этом историю проекта необратимо.
Чтобы увидеть, что изменилось в рабочем каталоге с момента последней зафиксированной контрольной точки, используйте команду git status. Проще говоря, запрос статуса у Git похож на инвентаризацию всего, что лежит на вашем столе. Команда определяет изменённые, новые и удалённые файлы и показывает, что именно изменилось с последнего коммита.
Область подготовки: лоток для проверки
Область подготовки, пожалуй, самое непонятное понятие для разработчиков, которые только начинают работать с контролем версий, во многом из-за того, что её название звучит как таинственное техническое хранилище. На самом деле представьте область подготовки как лоток для проверки, стоящий рядом с вашим столом. В этот лоток вы кладёте только те изменения, которые предназначены для следующей контрольной точки.
Допустим, утром вы исправляете критически важную ссылку на сброс пароля, а параллельно начинаете экспериментальный редизайн экрана приветствия. Изменение с паролем нужно зафиксировать обязательно, но редизайн незавершён и содержит ошибки. Вы не хотите, чтобы оба изменения попали в один коммит.
Выполнив команду git add с файлом сброса пароля, вы помещаете это конкретное, завершённое изменение в область подготовленных изменений (staging area). Несмотря на название, git add не сохраняет вашу работу окончательно и не отправляет ничего на онлайн-сервер. Команда лишь готовит выбранную версию файла для следующей контрольной точки. Эта небольшая пауза даёт вам огромный контроль. Вы можете просмотреть подготовленные изменения, убрать то, что добавили преждевременно, или включить дополнительные файлы, которые относятся к той же логической единице работы.
Локальный репозиторий: картотечный шкаф
Когда лоток для проверки содержит именно тот набор изменений, который вы хотите сохранить, эти правки переходят в третью зону Git: локальный репозиторий. Если рабочий каталог — это ваш стол, а область подготовленных изменений — лоток для проверки, то локальный репозиторий — это ваш надёжный картотечный шкаф.
Локальный репозиторий хранит все ваши коммиты и историю проекта прямо на вашем компьютере, в скрытых системных папках. Когда вы выполняете git commit -m "Fix password reset link", Git берёт подготовленные изменения из области подготовки и фиксирует их в виде постоянной именованной контрольной точки.
Такая архитектура, ориентированная на локальную работу, позволяет вести полную и прослеживаемую историю проекта без подключения к интернету и без онлайн-хостинга. Всё происходит надёжно, на вашем собственном оборудовании. Ваш повседневный рабочий процесс становится предсказуемым ритмом: вы редактируете файлы в рабочем каталоге, проверяете состояние командой git status, выбираете нужные изменения с помощью git add и фиксируете свой выбор командой git commit.
Заключение
Понимание различий между рабочим каталогом, областью подготовленных изменений и локальным репозиторием меняет подход к разработке проектов. Если рассматривать папку проекта как рабочее пространство, область подготовки как лоток для проверки, а локальный репозиторий как постоянный картотечный шкаф, вы получаете полный контроль над историей проекта.
Чтобы глубже разобраться в основах управления версиями, послушайте полный выпуск подкаста M365 FM, в котором Mirko Peters простым языком объясняет Git и рассказывает, как эти локальные механизмы вписываются в общие процессы работы команды.
Часто задаваемые вопросы
В чём разница между рабочим каталогом и областью подготовленных изменений?
Рабочий каталог — это активная папка проекта, в которой вы свободно редактируете, создаёте и удаляете файлы. Область подготовленных изменений — это избирательный лоток для проверки, куда вы помещаете только те изменения, которые хотите включить в следующий коммит.
Сохраняет ли git add мои файлы окончательно?
Нет. Команда git add готовит файлы, перемещая их в область подготовленных изменений, но не записывает их окончательно в историю проекта и не отправляет в интернет. Окончательная запись происходит только при выполнении git commit.
Можно ли использовать Git без онлайн-хостинга?
Да. Git изначально рассчитан на полностью локальную работу на вашем компьютере. Вы можете создавать локальный репозиторий, делать коммиты, управлять ветками и просматривать историю, даже не подключаясь к GitHub или интернету.
Что делать, если я случайно добавил файл в область подготовки?
Если вы подготовили файл слишком рано, Git предоставляет команды отмены (например, git reset), которые безопасно убирают файл из области подготовки и возвращают его в рабочий каталог без потери последних правок.