Obtener el file raw anterior del object blob (hash)

¿Hay alguna forma de get el file sin procesar previo del object blob especificado (hash)? En otras palabras, cuando un hash blob de un file se cambia de fd871b5 a 6732f18 , quiero get un contenido de fd871b5 . Pero desafortunadamente, fd871b5 no es público, así que trato de usar caret ^ con el hash blob modificado. De acuerdo con los resultados a continuación, caret ^ no funciona en contra de un object blob. ¿Algunas ideas?

 $ git show -- README.md commit 9f38e2d9e6ca81341fecf82d881cf629effb4be2 -- snip -- diff --git a/README.md b/README.md index fd871b5..6732f18 100644 -- snip -- $ git show 6732f18^ error: object 6732f18f21f8b4b7ffe0c015803d7cd09c597337 is a blob, not a commit error: object 6732f18f21f8b4b7ffe0c015803d7cd09c597337 is a blob, not a commit fatal: ambiguous argument '6732f18^': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]' 

Detalles del caso de uso: en algunos proyectos OSS, los parches liberados tienen un object blob que no es público, ni commit-id. Cuando pre-blob y commit-id no es público, y solo está disponible post-blob , quiero recuperar exactamente el mismo file correspondiente a <pre-blob> .

Solo los commits tienen padres. Resuelva qué hay en esa ruta en el padre del compromiso:

 git rev-parse 9f38e2d9e6ca81341fecf82d881cf629effb4be2^:README.md 

para mostrar su identificación,

 git show 9f38e2d9e6ca81341fecf82d881cf629effb4be2^:README.md 

para mostrar su contenido

Si conoce el hash del blob de interés y el blob aún existe en el repository (es decir, puede ser un object colgante, pero aún no ha sido recogido), use

 git cat-file -p <hash> 

Para arreglar ideas, he aquí un ejemplo:

 $ mkdir test && cd test $ git init Initialized empty Git repository in /Users/jubobs/Desktop/test-git/.git/ $ echo foo > README $ git add README $ git commit -m "Write 'foo' to README" [master (root-commit) 73ece26] Write 'foo' to README 1 file changed, 1 insertion(+) create mode 100644 README $ echo bar >> README $ git add README $ git commit -m "Append 'bar' to README" [master 7ac5ae9] Append 'bar' to README 1 file changed, 1 insertion(+) test-git(master)$ git show -- README commit 7ac5ae95b49c7e493119f46fb8150c437a200df3 (HEAD -> master) Author: Jubobs <xxxxxxxx> Date: Sun Jun 11 01:04:22 2017 +0100 Append 'bar' to README diff --git a/README b/README index 257cc56..3bd1f0e 100644 --- a/README +++ b/README @@ -1 +1,2 @@ foo +bar $ git cat-file -p 257cc56 foo $ git cat-file -p 3bd1f0e foo bar