2017-07-10 1 views
0

Dans un grand projet Django, je me souviens que nous changeons 'word1' par 'word2', mais je ne sais même pas ce qui est 'word2'. Cependant, je sais que je pourrais le trouver avec 'word1'. En d'autres termes, je voudrais trouver le commit où j'ai changé 'word1' à 'word2'. Comment pourrais-je faire une telle chose? Comment puis-je trouver le dernier commit avec 'word1'?Trouver la dernière validation contenant 'word1'

+0

connaissez-vous au moins un engagement qui a encore 'word1'? Par exemple, 'word1' était-il dans la validation initiale? –

+0

Nous avons 3000 commits jusqu'ici. Le dernier commit avec '' word1 '' est probablement 1000 il y a quelques mois. Donc je ne connais même pas un commit avec '' word1 '' –

Répondre

1

Vous devriez essayer le -S option of git log

git log -S word1 --patch 

affiche toutes les commettras avec le changement actif contenant 'word1' et le changer.

+0

Est-il possible d'afficher ce mot avec une couleur spécifique? –

+1

Pas avec git, vous devez utiliser un autre programme pour cela comme 'grep':' git log -S word1 --patch | grep '\ (^ commit \ | word1 \)' 'affichera le hash de commit et les lignes avec '' word1'' – zigarn

0

pas le plus léger chose à faire, mais je voudrais aussi envisager d'utiliser grep git .... en boucle ... quelque chose comme ceci:

git rev-list | while read revision; do 
    lines=$(git grep word1 $revision | wc -l) 
    if [ $lines -ne 0 ]; then 
     echo Found it on revision $revision 
     git grep word1 $revision 
     break 
    fi 
done