¿Cómo puedo get el contenido de un file de un commit de git con la biblioteca de regalos?

Estoy usando la biblioteca https://github.com/notatestuser/gift y esto es lo que tengo:

 gitCommit.tree().contents (err, gitTreeContents) -> console.log gitTreeContents 

Esto me da el contenido del tree, que es una matriz con objects que se ven así:

 { repo: { path: '/mygitrepo', bare: false, dot_git: '/mygitrepo/.git', git: { [Function] cmd: [Function], streamCmd: [Function], list_remotes: [Function], refs: [Function] } }, id: 'ed38d79b10503a4e7e68910f37f387f24dedd5fa', name: 'address.js', mode: '100644' } 

Entonces dos preguntas. Primero, ¿a qué se está refiriendo esa id ? No es un commit sha, ¿entonces supongo que es un treeish? En segundo lugar, ¿cómo puedo ver cómo se veía el file en ese momento?

Gracias

  1. Sí, es una ID arbórea, que es sha-1 de un object determinado del sistema de files, en el caso de un file simple, sha-1 de su contenido.
  2. Para get un object en un punto determinado de time, primero debe elegir un compromiso apropiado. Tenga en count que en un proyecto puede haber más de una confirmación en un momento dado con un file con un nombre dado, debido a posibles twigs. Por lo tanto, debe elegir una sucursal y luego consultar ese estado de sucursal en ese momento. Y una vez más, puede haber más de un compromiso, debido a posibles fusiones en la sucursal.
  3. gift es un simple contenedor sobre línea de command git. En la línea de command git debe ejecutar un command como este: git cat-file blob <commit-sha-1>:</path/to/file> . Eche un vistazo a http://github.com/notatestuser/gift/blob/master/src/blob.coffee , parece que hace exactamente lo que necesita.