¿Cómo verifico la fecha y hora de la última git pull
que se ejecutó? Con frecuencia necesito saber cuándo cambió el código en un servidor cuando algo sale mal.¿Cómo verifico la fecha y hora de la última `git pull` que se ejecutó?
Respuesta
El comando git show
muestra la fecha de la confirmación más reciente. Esta no es la fecha en la que se transfirió la confirmación al repositorio local, pero Git no conserva dicha información de extracción.
Puede encontrar la hora de la última extracción usando el ctime (tiempo de creación) de los archivos en el servidor. Por ejemplo:
ls -lct
muestra el tiempo de cada archivo, ordenado primero con el más reciente.
En un repositorio no vacío (y un repositorio vacío no tiene sentido para git pull
), git registra todos los cambios en las sugerencias de ramas y la idea de rama actual en "reflogs", en .git/logs
. Puede ver estos usando git log -g
.
Sin embargo, aunque los archivos de registro tienen marcas de tiempo, no parece que git log -g
lo imprima. Sin embargo, si echa un vistazo al .git/logs/HEAD
por ejemplo, verá que el formato es bastante simple de analizar: consiste en lo que el ref (o HEAD) cambió, cambió, quién lo cambió, cuándo y un mensaje de actividad .
stat -c %Y .git/FETCH_HEAD
Le dará una marca de tiempo unix de la última modificación de ese archivo. Git escribe el archivo FETCH_HEAD cada vez que tira o recupera, incluso si no había nada que extraer.
Marca de tiempo Unix del tiempo modificado en OSX: 'stat -f '% m' .git/FETCH_HEAD' – jpillora
O multiplataforma usando node:' node - p 'require ("fs"). statSync ("./. git/FETCH_HEAD"). mtime.getTime()' ' – jpillora
Git escribe FETCH_HEAD _antes de la recuperación/extracción real ... Entonces, si la extracción falló o se canceló, FETCH_HEAD no representaría el estado real del repositorio. Esto es especialmente problemático cuando la URL de repositorio original no funciona, ya que cada extracción fallaría pero FETCH_HEAD se actualizará en cada intento. – rustyx
Por una corazonada, me trataron "stat -c% a .git/FETCH_HEAD", y tiene una impresión legible de la época:
> stat -c %y .git/FETCH_HEAD
2015-02-24 17:42:08.072094410 -0500
Además, se puede añadir a la when = !stat -c %y .git/FETCH_HEAD
[alias]
sección en su archivo ~/.gitconfig (que es más segura de hacer esto de forma automática mediante la ejecución de la línea de comandos siguiente en cualquier repositorio git)
git config --global alias.when '!stat -c %y .git/FETCH_HEAD'
y entonces son capaces de encontrar esta información con su "comando" nuevo, en cualquier momento :
> git when
2015-02-23 15:07:53.086254218 -0500
[Entonces se me ocurrió hacer "stat hombre", y encontré que hay un montón de otros parámetros% disponibles para el programa 'stat'. YMMV]
usar Python:. python -c "import os;print os.stat('.git/FETCH_HEAD').st_mtime"
necesita algún formato, pero una respuesta completamente válida para freebsd donde stat doesn No funciona de la manera descrita arriba. – Endre
$ # for the latest pull even if there's nothing new
$ stat -c %y .git/FETCH_HEAD
2017-12-15 11:24:25.000000000 +0100
$
$ # for records of updated references
$ git reflog --date=iso
db2bba84 (HEAD -> master, origin/master, origin/HEAD) [email protected]{2017-12-14 11:28:39 +0100}: pull: Fast-forward
37fe73ad [email protected]{2017-12-03 17:09:32 +0100}: pull: Fast-forward
c4107fcd [email protected]{2017-11-27 18:53:40 +0100}: clone: from https://github.com/macports/macports-base
$
$ # for a more detailed view of the latter
$ git log -g
commit db2bba84d5e8cd82ec94a19129deb91ef62287bb (HEAD -> master, origin/master, origin/HEAD)
Reflog: [email protected]{0} (me <[email protected]>)
Reflog message: pull: Fast-forward
Author: Ryan Schmidt <[email protected]>
Date: Wed Dec 13 10:23:47 2017 -0600
portutil.tcl: Fix renames that supply the -force option
Treat $options as a list not as a string.
See: https://trac.macports.org/ticket/55492
[snip]
Como se sugiere por el usuario: https://stackoverflow.com/users/83646/smoove, se puede encontrar cuando git pull fue la última llamada en el repositorio mediante la comprobación de la fecha y hora de modificación: .git/FETCH_HEAD como: git escribe el archivo .git/FETCH_HEAD cada vez que tira o recupera, incluso si no había nada que extraer.
Ejemplo: {maestro} vinegupt @ bhling69 (/imsgit_local/work/vinegupt/ims_18.5a/ims_common) $ stat -c% y .git/FETCH_HEAD
2018-02-12 02:01: 50.487160386 +0530
- 1. La última vez que se ejecutó un procedimiento almacenado
- 2. Python: obtener la fecha y hora de la última hora
- 3. ¿La aplicación de detección se colgó durante la carga/la última vez que se ejecutó?
- 4. git stash y git pull
- 5. git: zona horaria y la fecha y hora formato
- 6. ¿Cómo se especifica la fecha y la hora en python?
- 7. ¿Cómo obtener la fecha y hora actual?
- 8. Cómo obtengo la Fecha y hora (VBS)
- 9. Git Pull: Cambiar la autenticación
- 10. ¿Cómo se analiza la fecha/hora de la cadena?
- 11. ¿Cuál es la diferencia entre git push y git pull?
- 12. ¿Cómo obtener la última inserción/actualización/eliminación de fecha y hora en Sql Server 2005?
- 13. Buscar registros producidos en la última hora
- 14. Cómo obtener la fecha y hora del sello de fecha y hora
- 15. Git: Cómo deshacer commit * y * revertir a la última rama
- 16. Selector de fecha y hora: configuración de la fecha y hora de apertura
- 17. Conversión de la cadena de fecha y hora de la fecha a la fecha
- 18. Git rollback 1 pull
- 19. ¿Cómo puedo mostrar el número de compilación y/o la fecha y hora de la última compilación en mi aplicación?
- 20. Rieles: Obtenga la hora de una fecha y hora
- 21. Cómo obtener la fecha y la hora actual de la columna Fecha/Hora en la lista personalizada de SharePoint
- 22. Cambiar la fecha y hora en MusicSequence
- 23. de fecha y hora
- 24. Git pull change log
- 25. git: ¿Cómo obtengo la última versión de mi código?
- 26. Fecha y hora en donde la cláusula
- 27. Cómo obtener la fecha y la hora del servidor
- 28. fecha y la fecha y hora en Django
- 29. YII: Cómo cambiar el formato de fecha y hora que se muestra en la Vista
- 30. ¿Cómo manejar la fecha y la hora con PHP?
Esto no responde la pregunta - vea la respuesta de smoove a continuación. –
'git show' muestra la fecha de la confirmación de sugerencia de la rama actual, que no es necesaria la confirmación más reciente en el repositorio, y mucho menos la fecha de la última extracción/extracción. También recomiendo comprobar la respuesta de smoove. – Stefaan
Me gustaría diferir. Esto responde la pregunta. Si bien no le da la fecha de la última extracción, sí le da la fecha de la confirmación que fue la más reciente la última vez que realizó la extracción. Para el caso de uso en la pregunta original, esto es perfectamente adecuado. Desea saber cuándo actualizó por última vez el código en un servidor a través de git pull, es decir, qué versión del código se encuentra actualmente en el servidor. 'git show' te dice en cuál compromiso está tu clon local. (Sé que esto es antiguo, pero terminé aquí mediante la búsqueda.) – Dietmar