2017-03-13 1 views
1

Ich möchte git grep wie diesesGit grep auf Dateien von Commit zuletzt nur

git grep -ni 'something' -- "*.spec" 

nur auf die Dateien ausführen, die mit dem gleichen Ergebnis wie oben Befehl in den letzten Commit geändert wurden. Hast du eine gute Idee?

Antwort

1

Am besten kann ich mir vorstellen, die Liste der Dateien zu bekommen und sie mit regulären grep zu verwenden. Der schwierige Teil (natürlich) ist der Umgang mit Dateinamen mit Leerzeichen und Zeilenumbrüchen ..

 
git diff-tree -z --no-commit-id --name-only -r HEAD \ 
    | xargs -0 grep --include 'pattern' -- "regex" 

Wo Muster ist derjenige, würden Sie die Dateinamen und Regex verwenden, um der tatsächliche reguläre Ausdruck ist in suchen die Dateien.


Der Grund für die nicht mit git-grep (andere, dass es nicht notwendig ist) ist, dass es Muster in den Dateinamen erweitert, während wir exakte Anpassung benötigen.