Рабочее дерево против рабочего каталога

Я читал Git v2.9.1 примечания к выпуску, и одно из изменений читает:

"git status" используется, чтобы сказать "рабочий каталог", когда это означало "рабочее дерево".

Какая разница между этими двумя? Когда git status означает "рабочее дерево"?

Ответ 1

Это было сделано для улучшения согласованности и избежания двусмысленности. Как объяснено в commit, который изменил это поведение:

Рабочий каталог можно легко путать с текущим каталогом.

Итак, это изменение было сделано для лучшего устранения неоднозначности между рабочим деревом, то есть местоположением, где был выгружен ваш репозиторий, и текущим рабочим каталогом, в котором вы используете команду git status, которая может быть где-то ниже вашей рабочей дерева (или, возможно, нет, если вы установите переменную среды GIT_WORK_TREE).

Ответ 2

Существует незначительная разница в значении.

A каталог - это особая вещь - папка, коллекция файлов, тогда как рабочее дерево означает дерево, как структура файлов и каталогов, которые являются коллективными ссылка.

Рабочее дерево означает каталог, содержащий папку .git, включая все подкаталоги и файлы.

Чтобы понять это более полно, вы должны понять, кто создал Git: Линус Торвальдс. Все в Git тесно связано с соглашениями об именах Linux и мысленными процессами, которые включают в себя то, как Git "думает" о файлах или файловой системе:

От 3.1.3. Подробнее расположение файловой системы

Для удобства файловая система Linux обычно рассматривается в древовидной структуре. В стандартной системе Linux вы найдете макет, как правило, следуя приведенной ниже схеме.

Диаграмма файловой системы Linux

Итак, он называется "рабочим деревом", потому что разработчики Linux/файловой системы Linux построили Git, а в Linux файловая система считается "деревом".

Ответ 3

Текущий каталог

- это ваша текущая папка, командная строка ls список элементов в вашем текущем каталоге

Рабочее дерево

является вашим текущим каталогом и всеми путями каталогов в нем, если бы это был я, я бы переименовал его в " дерево рабочего каталога", поэтому термин "дерево" больше поддается каталогу структура в вашем сознании и меньше в структуре дерева git

Рабочий каталог

неоднозначно используется для обозначения обоих этих случаев, не используйте это слово. Это смущает всех.