¿Hay un comando en Git para ver (ya sea volcado a stdout, o en $PAGER
o $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 HEAD
Respuestas:
Puede usar
git show
con una ruta desde la raíz del repositorio (./
o../
para una ruta relativa):Reemplace
REVISION
con 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.c
de 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
master
lugar 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 show
comando .En una palabra
git show <commitHash>:/path/to/file
Paso a paso
git log /path/to/file
commit hash
comocommit 06c98...
(06c98 ... siendo el hash de confirmación)commit hash
git show <commitHash>:/path/to/file
usando elcommit hash
paso 3 y elpath/to/file
paso 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-only
para 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 -p
le 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
. Presionen
op
para 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 -pm
que también mostraría commits de fusión.git log -p -- filename.txt
para 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_short
Ygit_log_message_for_commit
están desaparecidos.CAMINO 1: (prefiero de esta manera)
git reflog
git diff-tree --no-commit-id --name-only -r <commitHash>
git show <commitHash>:/path/to/file
CAMINO 2:
git reflog
git 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