Este método puede ser complicado debido a los atributos del archivo. Suponiendo que no se modifiquen o mire lo que almacena el repositorio, asegúrese de que sean iguales. Comprométalo con el repositorio y luego eche un vistazo al hash del árbol.
git show -s --pretty=format:%T HEAD
Ahora camina todos los envíos en el repositorio y ver si alguno de ellos tiene un árbol del mismo hash.
git log --all --format=%H
le dará todas las hashes de confirmación. Ahora tubería de esto para mostrar el hash árbol
git log --all --format=%H \
| xargs -n 1 git show -s --pretty='format:%H %T' \
| gerp <hash of your tree>
Si el alquitrán contenía exactamente la misma estructura que incluye permisos, la salida mostrará los SHA1s de las confirmaciones que tienen el mismo árbol.
La búsqueda del árbol de nivel superior SHA1 será RÁPIDA.
¿Por qué los votos a favor? Este es un problema interesante. Tiene archivos que se originaron en un repositorio de Git, pero actualmente no están bajo control de versión, y quiere saber a qué versión corresponden. Es una buena pregunta. – eykanal
Votación máxima. Es una excelente pregunta que expone la increíble manera en que Git almacena la historia. –
gracias por las dos excelentes respuestas. Al momento de hacer la pregunta, asumí que el tar.gz es una exportación exacta del repositorio, pero al probar ambos métodos, parece que solo hay una confirmación muy cercana, la diferencia está en los archivos README que parecen haber sido manualmente editado para el lanzamiento. Así que dar el crédito a la respuesta basada en diferencias, pero eso no quiere decir que el otro tampoco fue una respuesta excelente. Gracias de nuevo. – bee