Я читал Git v2.9.1 примечания к выпуску, и одно из изменений читает:
"git status" используется, чтобы сказать "рабочий каталог", когда это означало "рабочее дерево".
Какая разница между этими двумя? Когда git status
означает "рабочее дерево"?
Я читал Git v2.9.1 примечания к выпуску, и одно из изменений читает:
"git status" используется, чтобы сказать "рабочий каталог", когда это означало "рабочее дерево".
Какая разница между этими двумя? Когда git status
означает "рабочее дерево"?
Это было сделано для улучшения согласованности и избежания двусмысленности. Как объяснено в commit, который изменил это поведение:
Рабочий каталог можно легко путать с текущим каталогом.
Итак, это изменение было сделано для лучшего устранения неоднозначности между рабочим деревом, то есть местоположением, где был выгружен ваш репозиторий, и текущим рабочим каталогом, в котором вы используете команду git status
, которая может быть где-то ниже вашей рабочей дерева (или, возможно, нет, если вы установите переменную среды GIT_WORK_TREE
).
Существует незначительная разница в значении.
A каталог - это особая вещь - папка, коллекция файлов, тогда как рабочее дерево означает дерево, как структура файлов и каталогов, которые являются коллективными ссылка.
Рабочее дерево означает каталог, содержащий папку .git, включая все подкаталоги и файлы.
Чтобы понять это более полно, вы должны понять, кто создал Git: Линус Торвальдс. Все в Git тесно связано с соглашениями об именах Linux и мысленными процессами, которые включают в себя то, как Git "думает" о файлах или файловой системе:
От 3.1.3. Подробнее расположение файловой системы
Для удобства файловая система Linux обычно рассматривается в древовидной структуре. В стандартной системе Linux вы найдете макет, как правило, следуя приведенной ниже схеме.
Итак, он называется "рабочим деревом", потому что разработчики Linux/файловой системы Linux построили Git, а в Linux файловая система считается "деревом".
Текущий каталог
- это ваша текущая папка, командная строка ls список элементов в вашем текущем каталоге
Рабочее дерево
является вашим текущим каталогом и всеми путями каталогов в нем, если бы это был я, я бы переименовал его в " дерево рабочего каталога", поэтому термин "дерево" больше поддается каталогу структура в вашем сознании и меньше в структуре дерева git
Рабочий каталог
неоднозначно используется для обозначения обоих этих случаев, не используйте это слово. Это смущает всех.