As described in “How is git commit sha1 formed “, the formula is:
(printf "<type> %s\0" $(git cat-file <type> <ref> | wc -c); git cat-file <type> <ref>)|sha1sum
In the case of the commit 9eabf5b536662000f79978c4d1b6e4eff5c8d785 (which is v2.4.2^{}, and which referenced a tree) :
(printf "commit %s\0" $(git cat-file commit 9eabf5b536662000f79978c4d1b6e4eff5c8d785 | wc -c); git cat-file commit 9eabf5b536662000f79978c4d1b6e4eff5c8d785 )|sha1sum
That will give 9eabf5b536662000f79978c4d1b6e4eff5c8d785.
As would:
(printf "commit %s\0" $(git cat-file commit v2.4.2{} | wc -c); git cat-file commit v2.4.2{})|sha1sum
(still 9eabf5b536662000f79978c4d1b6e4eff5c8d785)
Similarly, computing the SHA1 of the tag v2.4.2 would be:
(printf "tag %s\0" $(git cat-file tag v2.4.2 | wc -c); git cat-file tag v2.4.2)|sha1sum
That would give 29932f3915935d773dc8d52c292cadd81c81071d.