web-dev-qa-db-fra.com

Query Git Reflog pour tous les engagements à un fichier spécifique

Est-il possible de vérifier le reflogue Git pour tous les engagements à un fichier spécifique.

J'ai commis un engagement à déposer foo.txt et maintenant il ne montre plus dans l'histoire de Git via

git log foo.txt

Je souhaite rechercher le reflex pour trouver tous les engagements à ce fichier afin que je puisse trouver mon "perdu" commettre.

49
cpjolicoeur

Essayer:

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

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

50
ralphtheninja

Je suis tombé sur ceci lors de la recherche d'une réponse, qui est simple: git reflog -- $PATH, qui comprendra des modifications amende et d'autres actions qui ne seront pas visibles autrement (bien que méfiez-vous, le reflèvement sera élaboré par GC)

26
Arkadiy Kukarkin

J'utiliserais:

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

L'option --Remotes vous permet d'utiliser également vos télécommandes, la --Pretty = Online le fait afficher également le message de validation. Très utile lorsque vous recherchez une modification poussée à distance dans une succursale, vous ne connaissez pas le nom de.

20
wdev

J'ai perdu un changement quand je nettoyais mon histoire avec Rebase. J'ai utilisé quelque chose comme ça pour rechercher sur le reflex:

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