From: Johannes Sixt Date: Thu, 31 Aug 2023 17:10:28 GMT Subject: Re: Problem: `fatal: too-short tree object` when executing hash-object on tree Message-ID: In-Reply-To: <0de414f8-f409-467f-a504-06a78f088981@app.fastmail.com> Am 31.08.23 um 12:58 schrieb Gareth Hayes: > Problem: I'm trying to reproduce the identifier of a tree object using `git cat-file -p | git hash-object -t tree --stdin` XY-problem alert!? > This results in an error: > `fatal: too-short tree object` > > To replicate: > `git cat-file -p HEAD` > `git cat-file -p | git hash-object -t tree --stdin` > > This works for other object types but not trees. What am I doing wrong? Recall that the -p in cat-file means "pretty" (-print). The data that makes up a tree object is far from pretty, hence, you can't feed it into git hash-object directly. You can either turn the pretty-printed input into a tree object git cat-file -p $treeoid | git mktree or hash the raw data git cat-file tree $treeoid | git hash-object -t tree --stdin -- Hannes