Git имеет хорошо известное или, по крайней мере, хорошо известное пустое дерево, SHA1 которого:
4b825dc642cb6eb9a060e54bf8d69288fbee4904
(вы можете увидеть это в любом репо, даже недавно созданном, с git cat-file -t
и git cat-file -p
).
Если вы много работаете и очень осторожны, вы можете использовать это пустое дерево для хранения каталога, у которого нет файлов (см. answer to Как добавить пустой каталог в git), хотя это не очень хорошая идея.
Это более полезно как один аргумент для git diff-tree
, который делает один из примеров hooks.
Мне интересно,
- Насколько надежна эта i.e, будет ли в будущей версии git объект git пронумерован
4b825dc642cb6eb9a060e54bf8d69288fbee4904
? - Почему нет символьного имени для пустого дерева (или есть один?).
(Быстрый и грязный способ создания символического имени состоит в том, чтобы поместить SHA1 в, например, .git/Nulltree
. К сожалению, вы должны сделать это для каждого репо. Лучше просто поместить магическое число в скрипты и т.д. У меня просто общее отвращение к магическим числам.)