← Назад в словарь

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