2012-07-25 17 views
6

En GitHub tiene esta bonita función en cada página de carpeta, enumera el nombre del archivo junto con la antigüedad de la última confirmación de ese archivo. Esto es similar al comando ls -l.git ls-files con fecha?

¿Hay alguna manera de imitar este comportamiento desde la línea de comandos? Algo así como

git ls-files -l 

Basado en sjas answer esto funciona para mí

ls | while read aa 
do 
    git log -1 --format="%ai $aa" "$aa" 
done 

Respuesta

3
$ for a in $(ls); do git log --pretty=format:"%h%x09%an%x09%ad%x09$a" -1 -- "$a"; done 
e76b sjas Tue Jul 24 21:55:20 2012 +0200 bashscripts/ 
68af sjas Wed Jul 25 13:49:26 2012 +0200 links 
83c9 sjas Tue Jul 24 15:21:09 2012 +0200 rndm/ 
aedf sjas Tue Jul 24 15:14:12 2012 +0200 temp/ 
a643 sjas Tue Jul 24 21:48:19 2012 +0200 tips/ 
f71d sjas Tue Jul 24 19:26:20 2012 +0200 todo 

Tomado de https://stackoverflow.com/a/469238/805284

En caso de que esto tiene un aspecto extraño:
Mis SHA1 de se abrevian a sólo 4 números a través core.abbrev=4 en mi .gitconfig.

Pero ¿quién no tiene uso para esta aquí:

$ for a in $(ls); do git log --pretty=format:"%h%x09$a%x09%s" -1 -- "$a"; done 
e76b bashscripts/ added pushd/popd/dirs shortcuts!!! 
68af links   fastcommit 
83c9 rndm/   further cleanup 
aedf temp/   tempcommit 
a643 tips/   added disk usage script and pushd/popd annotation 
f71d todo   fastcommit 
+2

@sjas, estoy bastante seguro de un copiar y pegar el texto de la pantalla es mucho más simple que una captura de pantalla/cultivo/subir! – Shahbaz

+4

¿Sangrar cada línea cuatro espacios? SO tiene un atajo para él, el botón de código '{}' en el editor. – vergenzt