52 votes

Git historique - trouver la ligne perdue par mot clé

J'ai eu quelque part dans mon dépôt Git une ligne contenant le mot "Foo" quelques centaines s'engage avant.

S'il ya un moyen de trouver son numéro de révision où il était la dernière fois sans acheter FishEye?

99voto

VonC Points 414372

Qui peuvent être résolus par la pioche (-S) option d' gitlog

 git log -SFoo -- path_containing_change

(vous pouvez même ajouter un intervalle de temps: --since=2009.1.1 --until=2010.1.1)

-S<string>

Chercher les différences que d'introduire ou de supprimer une instance de <string>.
Notez que ceci est différent de la chaîne de simplement apparaître dans les diff de sortie; voir la pioche entrée dans gitdiffcore(7) pour plus de détails.

diffcore-pickaxe

Cette transformation est utilisée pour trouver filepairs qui représentent des changements qui touchent une chaîne de caractères spécifiée.
Lors de l' diffcore-pickaxe est en cours d'utilisation, il vérifie si il y a filepairs dont "original" a côté de la chaîne de caractères spécifiée et dont le "résultat" ne fonctionne pas.
Une telle filepair représente "la chaîne est apparu dans cet ensemble de modifications".
Il vérifie également le cas contraire qui perd de la chaîne spécifiée.


Mise à jour de 2014:

Depuis lors, vous pouvez le faire (à partir de nilbus's réponse):

git log -p --all -S 'search string'
git log -p --all -G 'match regular expression'

Ces commandes de fichier de la liste s'engage à ce que d'ajouter ou de supprimer la chaîne de recherche/regex, (en général) les plus récents en premier.
L' -p (--patch) option causes pertinentes diff montré où le motif a été ajoutée ou supprimée, de sorte que vous pouvez le voir dans le contexte.

Ayant trouvé un commit qui ajoute le texte que vous recherchez (par exemple. 8beeff00d), de trouver les branches qui contiennent de la validation:

git branch -a --contains 8beeff00d

(J'référence de cette dernière commande dans "Comment lister les branches qui contiennent une commettre?")

1voto

Amber Points 159296

Pire scénario, `` l'utilisation `` et?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X