Vous pouvez voir les commits en suspens avec git log -g
.
-g, --walk-reflogs
Instead of walking the commit ancestry chain, walk reflog entries from
the most recent one to older ones.
Vous pouvez donc faire cela pour trouver une chaîne particulière dans un message de livraison qui est en suspens :
git log -g --grep=search_for_this
Alternativement, si vous voulez rechercher les modifications pour une chaîne de caractères particulière, vous pouvez utiliser l'option de recherche de la pioche, "-S" :
git log -g -Ssearch_for_this
# this also works but may be slower, it only shows text-added results
git grep search_for_this $(git log -g --pretty=format:%h)
Git 1.7.4 sera ajouter l'option -G , vous permettant de passer -G<regexp> pour trouver quand une ligne contenant <regexp> a été déplacée, ce que -S ne peut pas faire. -S vous dira seulement quand le nombre total de lignes contenant la chaîne de caractères a changé (c'est-à-dire l'ajout/le retrait de la chaîne de caractères).
Enfin, vous pouvez utiliser gitk pour visualiser les commits en suspens :
gitk --all $(git log -g --pretty=format:%h)
Puis, utilisez ses fonctions de recherche pour retrouver le fichier égaré. Tout cela fonctionne en supposant que le commit manquant n'a pas "expiré" et n'a pas été collecté, ce qui peut arriver s'il traîne pendant 30 jours et que vous expirez les reflogs ou exécutez une commande qui les expire.
0 votes
En rapport : Comment lire les commandes git pour un certain mot ? .