Git recherche une chaîne dans un historique de fichiers unique
Donc, si j'ai un fichier appelé foo.rb et il me donne une erreur pour un manque de méthode appelée bar, donc je recherche l'histoire de foo.rb pour la chaîne bar
pour voir si elle a jamais été définie dans le passé.
J'ai trouvé cette Recherche toute l'histoire de Git pour une chaîne?
Mais cela recherche tous les fichiers. Je veux juste chercher dans un fichier.
3 réponses
À cette fin, vous pouvez utiliser l'option-s pour git log:
git log -S'bar' -- foo.rb
Ou peut-être que vous pouvez essayer celui-ci (à partir de questions connexesrechercher toute l'histoire de git pour la chaîne)
git rev-list --all foo.rb | (
while read revision; do
git grep -F 'bar' $revision foo.rb
done
)
Il recherchera réellement le contenu du fichier et ne validera pas les messages / correctifs pour toute occurrence de bar.
Il y a une substitution pour la commande git log (à partir de manual):
$ git log Makefile # commits that modify Makefile
Vous pouvez donc utiliser:
git log foo.rb | grep "bar"