2017-03-24 4 views
0

Est-il possible d'obtenir une liste de fichiers avec la révision correspondante de la dernière modification de la télécommande? Par exemple, je pouvais exécutergit: liste des fichiers avec la révision correspondante de la dernière modification

git ls-files

ou

git diff --name-only origin/master..HEAD

puis havind la liste des fichiers que je pouvais faire

git log origin/master -n 1 --pretty=format:%h -- fileName

pour chacun. Mais j'aimerais le faire de la manière la plus élégante. De préférence en utilisant seulement les commandes git. La sortie idéale ressemblerait à ceci:

file1 35acf7e2f89502f7fd5868732788d9c72349165f 
file2 2aa721537dd3ba64967c2b00441cebb8775ded74 
file3 c4e0c00181e23f03c128588620f5270a360de03b 
file4 35588dd34113e9f9a843d987774d173fb63b5409 
... 

ou première révision, le fichier puis le nom.

Répondre

1
git ls-files | while read file; \ 
    do \ 
     git log -n 1 --pretty="%h $file" -- $file; \ 
    done 

ls-files listera les fichiers dans l'arborescence de travail, qui pourrait alors être canalisé vers git journal pour chaque fichier pour obtenir la validation.

git ls-files | xargs -n 1 -I {} \ 
    sh -c 'git log -n 1 --pretty=format:%h -- {} ; echo " {}"' 

Les mêmes en utilisant xargs