Working tree
Working tree — рабочее дерево
Суть в одном предложении
Working tree — это текущее состояние файлов проекта в каталоге репозитория, то, что вы реально редактируете до коммита.
Краткое определение
Рабочее дерево (working tree) — директория с файлами проекта, в которой вы вносите изменения; Git сравнивает её с последним коммитом и индексом (staging area), чтобы показать, что изменено, добавлено или удалено.
Оригинал и перевод
- Язык: английский
- Оригинал: Working tree
- Буквальный перевод: рабочее дерево
Синонимы и варианты написания
- Working tree
- Рабочее дерево
- Working directory (в документации Git часто равнозначно)
Происхождение
Термин из Git: репозиторий хранит объекты и историю в .git, а «дерево» файлов, с которым работает пользователь, — это рабочая копия вне .git. В других СКВ используются похожие понятия (working copy в SVN).
Где используется
- Git: команды
status,diff,checkout,restore - Локальная разработка и code review
- CI/CD: в пайплайне часто клонируют репозиторий и работают с рабочей копией
Когда это важно
- Перед коммитом: понять, что именно изменилось в working tree и что уже добавлено в индекс.
- При конфликтах и откатах: различать «что в рабочем дереве», «что в индексе» и «что в последнем коммите».
- При переключении веток: несохранённые изменения в working tree могут мешать checkout.
Подробное объяснение
Working tree — это видимая вам структура каталогов и файлов проекта. Git не хранит «текущую версию» файлов в рабочем дереве как источник истины: источник истины — объекты в .git. Рабочее дерево получает содержимое при checkout коммита и обновляется при слияниях и переключении веток. Незакоммиченные правки существуют только в рабочем дереве и (если вы делали git add) в индексе. Команды вроде git status и git diff как раз сравнивают working tree с индексом и индекс с последним коммитом.
Аналоги и связанные термины
- Staging area (индекс) — промежуточная область между working tree и коммитом
- Commit — зафиксированный снимок, с которым сравнивается рабочее дерево
- Repository — хранилище с историей, куда попадают коммиты из working tree
Пример использования
«Перед коммитом проверь состояние working tree: git status покажет изменённые и не добавленные в индекс файлы.»
«После слияния ветки в working tree остались конфликты — их нужно разрешить и закоммитить.»
Мини‑FAQ
Working tree и папка проекта — одно и то же?
Ответ: Да. Это каталог репозитория без учёта служебной папки.git; в нём лежат все файлы, с которыми вы работаете.Что значит «чистое» рабочее дерево?
Ответ: Нет незакоммиченных изменений: working tree совпадает с текущим коммитом, индекс пуст (все изменения уже закоммичены).
Смотри также
- Staging area (индекс)
- Commit
- Branch
- Repository