git grep - aber beschränkt auf neue oder geänderte Dateien im Index

8

Ist es möglich, git grep zu erhalten, um nur neue oder geänderte Dateien im Index / Cache zu suchen?

(Der Anwendungsfall dafür ist die Verwendung in einem Pre-Commit-Hook, der im prospektiven Commit nach "debug" -Code wie console.log sucht. Aber ich bin nicht gestört von console.log in "existend" Code. Vorzugsweise würde dies auch nicht mit Instanzen von console.log übereinstimmen, die entfernt sind, aber ich kann mit diesen übereinstimmen!)

    
mjs 19.12.2012, 15:15
quelle

4 Antworten

12

Es stellt sich heraus, dass dies nicht über git grep geschieht, sondern durch einen völlig anderen Befehl, der zufällig auch folgendes finden kann: git diff-index . (Ein weiterer Triumph für Einfachheit und Orthogonalität ...)

Was ich wollte, kann erreicht werden über:

%Vor%     
mjs 27.12.2012, 11:32
quelle
4

Normalerweise mache ich einfach so etwas wie:

%Vor%

Wenn Sie genug Zeilen haben, um das nervig zu machen, dann füge ich | grep '^+' hinzu, oder fang an, mit -[ABC] Optionen herumzuspielen.

    
Tom 20.12.2012 09:45
quelle
1

Sie können einen git pre-commit-Hook erstellen (es ist nur ein Shell-Skript, das als ausführbare Datei in Ihrem .git / hooks-Verzeichnis markiert ist), das Ihre Commit-Diff für neu hinzugefügte Zeilen scannt (die mit + symbol at) der Anfang für dein "debug" -Muster), und ein exit 1 , wenn es solche Zeilen gefunden hat.

Dies weist git commit an, das Commit abzubrechen, bevor Sie Ihren $ EDITOR zum Editieren der Commit-Nachricht starten.

    
holygeek 19.12.2012 16:15
quelle
0

Ich habe ein Perl-Programm namens dirty , das neue oder geänderte Dateien in einem Repo erkennt, und dann kann ich einfach grep string_to_find $(dirty) sagen.

%Vor%

Beachten Sie, dass es schlau genug ist, in einem Subversion-Repo oder einem Git-Repo nach schmutzigen Dateien zu suchen, je nachdem, welche es erkennt.

    
Andy Lester 19.12.2012 15:27
quelle

Tags und Links