61 votes

Interroger git reflog pour tous les commits dans un fichier spécifique

Est-il possible de vérifier le git reflog pour tous les commits dans un fichier spécifique.

J'ai fait un commit dans le fichier foo.txt et maintenant il ne s'affiche plus dans l'historique de git via

 git log foo.txt

Je veux rechercher le reflog pour trouver tous les commits dans ce fichier afin que je puisse trouver mon commit "perdu".

65voto

Arkadiy Kukarkin Points 233

Je suis tombé sur cela en cherchant une réponse, qui est simple : git reflog -- $PATH , qui inclura les modifications et autres actions qui ne seront pas visibles autrement (mais attention, reflog sera élagué par gc)

59voto

ralphtheninja Points 24346

Essayer:

 git rev-list --all -- foo.txt

Cela vous donnera une liste de tous les commits contenant foo.txt.

19voto

wdev Points 1146

j'utiliserais :

 git rev-list --all --remotes --pretty=oneline foo.txt

L'option --remotes vous permet également d'utiliser vos télécommandes, la --pretty=oneline lui permet d'afficher également le message de validation. Très utile lorsque vous recherchez une modification poussée à distance dans une branche dont vous ne connaissez pas le nom.

1voto

glevand Points 1

J'ai perdu un changement lorsque je nettoyais mon historique avec rebase. J'ai utilisé quelque chose comme ceci pour rechercher les reflogs :

 for r in $(git reflog -- ${file} | cut -d ' ' -f1); do git show ${r}:${file}; done

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X