Quiero extraer una copia de la última versión de un archivo almacenado en un repositorio de git y pasarlo a un script para su procesamiento. Con svn o hg, solo uso el comando "cat":
Imprima los archivos especificados como estaban en la revisión dada. Si no se proporciona ninguna revisión, se utiliza el padre del directorio de trabajo, o tip si no se extrae ninguna revisión.
(eso es de la descripción de hg cat en la documentación de hg)
¿Cuál es el comando equivalente para hacer esto con git?
git
version-control
Richard Boulton
fuente
fuente
Respuestas:
Donde rev es la revisión.
Consulte http://git.or.cz/course/svn.html para ver una comparación de los comandos git y svn.
fuente
hay "git cat-file" que puede ejecutar así:
$ git cat-file blob v1.0:path/to/file
donde puede reemplazar 'v1.0' con la rama, etiqueta o confirmar SHA que desee y luego 'ruta / a / archivo' con la ruta relativa en el repositorio. También puede pasar '-s' para ver el tamaño del contenido si lo desea.
podría estar más cerca de los comandos 'cat' a los que está acostumbrado, aunque el 'show' mencionado anteriormente hará lo mismo.
fuente
git show
es el comando que busca. De la documentación:fuente
También trabaje con nombres de ramas (como HEAD en la primera p):
fuente
Utilice
git show
, como engit show commit_sha_id:path/to/some/file.cs
.fuente
Escribí un script de shell de git cat, que está en github
fuente
No parece haber un sustituto directo . Esta entrada de blog detalla cómo hacer el equivalente determinando la última confirmación, luego determinando el hash para el archivo en esa confirmación y luego volcándolo.
(la entrada del blog tiene errores tipográficos y usa lo anterior con el comando
svn
)fuente
Ninguna de las
git show
sugerencias satisface realmente porque (por mucho que lo intente), no puedo encontrar una manera de no obtener los metadatos cruft de la parte superior de la salida. El espíritu del gato (1) es solo para mostrar el contenido. Esto (a continuación) toma un nombre de archivo y un número opcional. El número es la cantidad de confirmaciones a las que desea volver. (Las confirmaciones que cambiaron ese archivo. Las confirmaciones que no cambian el archivo de destino no se cuentan).muestra el contenido de filename.txt a partir de la última confirmación de filename.txt y el contenido de 3 confirmaciones anteriores.
fuente
Para aquellos que usan bash, la siguiente es una función útil:
Ponlo en tu
.bashrc
archivo (puedes usar cualquier nombre que no seagcat
.Uso de ejemplo:
o
o
fuente