2016-08-24 2 views

ответ

10

Это было сделано для улучшения согласованности и избежания двусмысленности. Как поясняется в commit that changed this behavior:

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

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

+0

Он просто говорит «рабочее дерево» все время? Это тоже вводит в заблуждение. Если вы запустили 'git status .', то на самом деле вы получаете статус рабочего каталога. Если вы запустите 'git status somesubdir', то результат не будет ни о текущем рабочем каталоге, ни обо всем рабочем дереве ... –

+0

@ WumpusQ.Wumbley Да, это правильно. Если вы указываете pathspecs на 'git-status', и они не модифицируются, то он говорит« ничего не делать, работая с деревом », даже если другие части рабочего дерева не являются чистыми. Я согласен, что это не оптимально, хотя и не хуже, чем раньше. –

3

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

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

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

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

От 3.1.3. More file system layout

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

Linux file system diagram

Так это называется «рабочее дерево», потому что разработчики Linux керналь/файловой системы построен Git, и в Linux файловая система мыслится как «дерево».

1

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

является текущей папке, командная строка Ls список элементы в текущем каталоге

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

ваш текущий каталог и все пути к каталогам в нем, если бы это был я, я бы переименовал его в «дерево рабочего каталога», поэтому термин «дерево» больше подходит для ди приходской структура в вашем сознании глаз и меньше в структуре дерева мерзавец

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

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

Смежные вопросы