¿Hay un comando en Git para ver (ya sea volcado a stdout, o en $PAGERo $EDITOR) una versión particular de un archivo en particular?
git
git-commands
git-history-graph
Miguel
fuente
fuente

git checkout <sha1-of-the-commit-you-need>, después,git checkout HEADRespuestas:
Puede usar
git showcon una ruta desde la raíz del repositorio (./o../para una ruta relativa):Reemplace
REVISIONcon su revisión real (podría ser un SHA de confirmación de Git, un nombre de etiqueta, un nombre de sucursal, un nombre de confirmación relativo o cualquier otra forma de identificar una confirmación en Git)Por ejemplo, para ver la versión del archivo
<repository-root>/src/main.cde hace 4 commits, use:Git para Windows requiere barras diagonales incluso en las rutas relativas al directorio actual. Para obtener más información, consulte la página de manual de
git-show.fuente
Hacer esto por fecha se ve así:
Tenga en cuenta que
HEAD@{2013-02-25}significa "dónde estaba HEAD el 25/02/2013" en este repositorio (usando el registro ), no "la última confirmación antes del 25/02/2013 en esta rama en la historia".fuente
masterlugar deHEAD@{2013-02-25}, si estás en una ramagit log --since='2016-04-28 23:59:59 +0100'?Si te gustan las GUI, puedes usar gitk:
comenzar gitk con:
Elija la revisión en la parte superior de la pantalla, por ejemplo, por descripción o fecha. Por defecto, la parte inferior de la pantalla muestra la diferencia para esa revisión (correspondiente al botón de opción "parche").
Para ver el archivo de la revisión seleccionada:
fuente
gitk REVISION /path/to/file. Esto puede ser útil cuando desee verificar una versión determinada, por ejemplo.También puede especificar un
commit hash(a menudo también llamadocommit ID) con elgit showcomando .En una palabra
git show <commitHash>:/path/to/filePaso a paso
git log /path/to/filecommit hashcomocommit 06c98...(06c98 ... siendo el hash de confirmación)commit hashgit show <commitHash>:/path/to/fileusando elcommit hashpaso 3 y elpath/to/filepaso 1.Nota: agregar el
./al especificar una ruta relativa parece importante, es decirgit show b2f8be577166577c59b55e11cfff1404baf63a84:./flight-simulation/src/main/components/nav-horiz.html.fuente
git show <SHA1> --name-onlypara obtenerlo.Además de la respuesta de Jim Hunziker ,
puedes exportar el archivo desde la revisión como,
Espero que esto ayude :)
fuente
Para ver rápidamente las diferencias con las revisiones anteriores de un archivo:
fuente
git log -ple mostrará no solo los registros de confirmación, sino también la diferencia de cada confirmación (excepto las confirmaciones de fusión). Luego puede presionar/, ingresar el nombre del archivo y presionarenter. Presionenoppara ir a la ocurrencia siguiente / anterior. De esta manera, no solo verá los cambios en el archivo, sino también la información de confirmación.fuente
git log -pmque también mostraría commits de fusión.git log -p -- filename.txtpara restringir el historial solo al archivo deseado.Puede usar un script como este para volcar todas las versiones de un archivo para separar archivos:
p.ej
Obtenga el script aquí como respuesta a otra pregunta similar
fuente
git_root,git_log_shortYgit_log_message_for_commitestán desaparecidos.CAMINO 1: (prefiero de esta manera)
git refloggit diff-tree --no-commit-id --name-only -r <commitHash>git show <commitHash>:/path/to/fileCAMINO 2:
git refloggit reset --hard %commit ID%fuente
Ayudante para recuperar múltiples archivos de una revisión dada
Al intentar resolver conflictos de fusión, este ayudante es muy útil:
GitHub aguas arriba .
Uso:
Resultado: lo siguiente contiene las versiones alternativas de los archivos:
De esta manera, conserva la extensión del archivo para que su editor no se queje y pueda encontrar fácilmente el archivo antiguo justo al lado del más nuevo.
fuente