2013-06-14 4 views
5

Angenommen, ich habe eine Datei bar.cpp, die ich in Git begangen habe. Irgendwann in der Vergangenheit hatte ich eine foo in dieser Datei.Wie finde ich alle Git Revisionen einer Datei, die foo enthält?

FRAGE

Wie kann ich alle git Revisionen bar.cpp finden, die foo diese Zeichenfolge enthalten?

HINWEIS

Eine Kommandozeilen-Lösung wäre toll.

+0

Wollen Sie * alle * Revisionen 'foo' enthält, oder würde 'git bisect' und' grep' machen? – Ryan

+0

@minitech Wenn ich anfangen kann, indem ich die * neuesten * oder neueren Revisionen finde, die 'foo' enthalten, würde das einen langen Weg zurücklegen (übrigens bin ich nicht mit' git bisect' vertraut). – kfmfe04

+0

'git Halbierung laufen grep foo bar.cpp' war meine Idee, aber @ StevenPenny scheint besser :) – Ryan

Antwort

4

Kann the pickaxe

git log -S foo bar.cpp 

verwenden und wenn Sie die diffs wollen

git log -p -S foo bar.cpp 

Mehr Infos

 
-S<string> 

    Look for differences that introduce or remove an instance of 
    <string>. Note that this is different than the string simply 
    appearing in diff output; see the pickaxe entry in gitdiffcore(7) 
    for more details. 
+0

+1 fantastisch:' -p -S' funktioniert super – kfmfe04

Verwandte Themen