git hash-object
Calcula a identidade de um arquivo — e, se pedir, o deposita no cofre.
É a operação primeira do git, servida crua: dado um conteúdo, calcular o hash que o identifica. Sem -w nada é gravado — o comando apenas responde "se este arquivo entrasse no cofre, este seria seu nome". Com -w, o blob é depositado de fato.
Vale pela lição e pelo truque: a lição é que o mesmo conteúdo tem sempre o mesmo hash, em qualquer máquina; o truque é conferir se um arquivo solto é idêntico a algo já versionado, comparando identidades em vez de bytes.
$ git hash-object helpers.go
6c9f2e41b0a8d3f7c5e21a94d8b06f3a7c4e9d12
$ echo 'oi' | git hash-object --stdin
8b1e9f0a3c7d5b2e4f6a8c0d9b3e5f7a1c4d6e80