Gibt es eine Option, um git diff
auf einen bestimmten Satz von Dateierweiterungen zu beschränken ?
git
file-extension
vfclists
quelle
quelle
git diff -- *.{c,h,etc}
git diff master HEAD -- "*filename.txt"
Ebenfalls nützlich ist diegit diff master HEAD --name-only
''
) sind ebenfalls wichtig!git diff -- src/*.js
sollte seingit diff -- 'src/*.js'
Um Dateien rekursiv (einschließlich des aktuellen Verzeichnisses) einzuschließen, funktionierte dies für mich:
quelle
git diff -- '***.py' ':!.Trashes'
Verwenden Sie entweder den Globstar Ihrer Shell (der eine rekursive Suche durchführt) 1 , 2 :
oder benutze find:
Beide sind spezielle Namen und Leerzeichen. Obwohl Sie möglicherweise nach Verzeichnissen mit der Erweiterung .py filtern möchten :)
1 mache ich
git diff -- {.,**}/*.py
normalerweise gerne2 Wenn globstar aktiviert ist,
git diff -- **/*.py
enthält es bereits./*.py
. In Bashs Manpage: 'Wenn ein / folgt, stimmen zwei benachbarte * nur mit Verzeichnissen und Unterverzeichnissen überein.'quelle
Bei einfachen Dateimustern scheint dies zu funktionieren:
Whitespace sicher, und Sie können auch mehrere Erweiterungen haben:
quelle
Befehlszeilenargument für die Erweiterung.
In der Alternative können Sie Rohr
find
ingit diff
:quelle
git diff *.py
und ohne die schreienden Überschriften ausreichen könnenWie in Git Version 2.18.0 getestet, sollte die Dateierweiterung in doppelte Anführungszeichen gesetzt werden. Wenn Sie nach dem Abrufen die letzten Unterschiede zwischen Ihrem lokalen und dem Remote-Repository ermitteln möchten, können Sie Folgendes verwenden:
Beispielsweise:
quelle
git diff master@{1} origin/master --name-only -- "*.cs"
Keine der obigen Antworten scheint unter
git bash
Windows für mich zu funktionieren . Ich bin nicht sicher, ob es sich um eine Versionssache (ich verwende 1.8.4) oder eine Windows / Bash-Sache handelt. In meinem Fall wollte ich auch zwei Zweige unterscheiden, in denen in jedem Zweig zusätzliche Dateien vorhanden waren, die im anderen Zweig nicht vorhanden waren (daher sind die auf "Suchen" basierenden Dateien nicht vorhanden).Wie auch immer, das hat bei mir funktioniert (in meinem Beispiel nach einem Unterschied zwischen Python-Dateien):
quelle
git diff
zeigt nur Unterschiede in nicht bereitgestellten Dateien.Ich habe diese Frage gefunden, weil ich
.info
Dateien von ausschließen wolltegit diff
. Ich habe dies erreicht, indem ich es mit inszeniert habegit add *.info
, wodurch die verbleibenden Dateien reduziert werden.quelle
Ich endete damit:
Dies zeigt Unterschiede für das angegebene Commit nur an, wenn der Dateiname das Wort 'test' enthält (ohne Berücksichtigung der Groß- und Kleinschreibung) und nicht mit endet
.sql
. Ändern Sie die Pipeline nach Bedarf für Ihren Fall.quelle