2010-07-09 9 views
5

Quiero un comando git que simplemente muestre el SHA de un objeto arbitrario (commit, tree, blob, whatever). Básicamente:forma más simple de obtener el SHA de un objeto git arbitrario?

$ git sha HEAD 
7b78f727c91edc7726f3c31113bc7b1509fea163 
$ git sha master^:CHANGELOG 
0dcc5f003ed89c30a8d0376a29d546c20449fd90 

... y así sucesivamente. Esto debería ser lo más simple en el mundo, pero no puedo encontrar una buena manera de hacerlo. No me importa usar un alias para un comando git complejo y cargado de opciones, pero parece que me falta un comando de desreferencia realmente simple que seguramente git debe usar debajo del capó todo el tiempo.

Respuesta

6

Para los fines que ha indicado, su git sha es realmente git rev-parse.

% git rev-parse HEAD 
47753f420d6ec7d84f8705e9acb67693745b4a8b 
% git rev-parse origin/pu^:Documentation/RelNotes-1.7.1.txt 
9d89fedb36b4d6fa7c8a6a8487cc47b4ca542e3a 
+0

Ah, bueno ... Vi ese comando pero no establecí la conexión entre "argumentos de análisis" y referencias a objetos sin referencias. Pero, por supuesto, este último es una parte crucial de la primera. ¡Gracias! –

Cuestiones relacionadas