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.
Essayer:
git rev-list --all -- foo.txt
Cela vous donnera une liste de tous les engagements contenant foo.txt.
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)
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.
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