ultima notes actualizar git

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 .