Это странно, потому что missing tree
и dangling tree
не могут произойти, если не было сделано или было сделано коммитов.Это git write-tree
, который строит древовидные объекты из индекса (или git hash-object -w -t tree
, но это сложно использовать).(Ну, отсутствующее дерево - это пустое дерево - я думал , что хеш-идентификатор звучал знакомо! - так что это немного менее странно.)
Тем не менее, однако выдойдя до этого момента, объект висячее дерево , вероятно, является тем, что имеет ваши хэш-идентификаторы BLOB-объектов.Используйте git show
или git ls-tree -r
для получения имен файлов и хэш-идентификаторов BLOB-объектов, затем используйте git show
или git cat-file -p
для каждого BLOB-идентификатора, чтобы получить содержимое файла, и сохраните его под именем, найденным в дереве..
Или вы можете использовать трюк eftshift0 : превратить свисающее дерево в дерево коммита.Это даже лучше / удобнее.(eftshift0 должен превратить это в ответ, который вы должны принять :-))