git - notes - laravel version
git diff en la fecha? (3)
Combinando la sugerencia de Jonathan Stray de usar git-rev-list --before
de encontrar la revisión en una fecha determinada y Mostrar solo la rama actual en Git :
#!/bin/sh
if [ $# -eq 0 ] || [ "$1" = "--help" ]; then
cat <<EOF
Usage: $0 DATE FILE...
git diff on FILE... since the specified DATE on the current branch.
EOF
exit
fi
branch1=$(git rev-parse --abbrev-ref HEAD)
revision1=$(git rev-list -1 --before="$1" "$branch1")
shift
revision2=HEAD
git diff "$revision1" "$revision2" -- "$@"
Llame a este script con una fecha y, opcionalmente, algunos nombres de archivos, por ejemplo,
git-diff-since yesterday
git-diff-since ''4 Dec 2012'' some/file/path/file.ext
Estoy acostumbrado a ejecutar una comparación de git que permitirá la comparación con las revoluciones locales de git como:
git diff HEAD HEAD~110 -- some/file/path/file.ext
¿Es posible utilizar la fecha en su lugar? Y si es así, ¿cómo? Me gustaría poder insertar en lugar de "110" en el ejemplo anterior, una fecha como "4 de diciembre de 2012".
Lo que quieres debe ser esto.
git diff HEAD ''@{3 weeks ago}'' -- some/file/path/file.ext
Debes comparar con @{3 weeks ago}
, no HEAD@{3 weeks ago}
.
Cual es la diferencia
Si estuviera en otra rama hace 3 semanas, HEAD@{3 weeks ago}
apuntaría a la HEAD de la rama, por otro lado @{3 weeks ago}
apuntaría a la HEAD de la rama actual.
También puede nombrar explícitamente la rama.
git diff HEAD ''master@{3 weeks ago}'' -- some/file/path/file.ext
git diff HEAD ''HEAD@{3 weeks ago}'' -- some/file/path/file.ext
Esto no es, estrictamente hablando, la revisión hecha hace tres semanas. En cambio, es la posición en la que HEAD
encontraba tres semanas antes del presente. Pero probablemente sea lo suficientemente cerca para sus propósitos: será muy preciso si la HEAD
la rama actual avanza constantemente, como la mayoría tiende a hacer. Puede mejorar la precisión utilizando un nombre de rama en lugar de HEAD
.
En lugar de una compensación del presente, también puede usar una fecha / hora, como HEAD@{1979-02-26 18:30:00}
. Ver git help rev-parse
.