Czy istnieje opcja ograniczenia git diff
do podanego zestawu rozszerzeń plików?
git
file-extension
vfclists
źródło
źródło
git diff -- *.{c,h,etc}
git diff master HEAD -- "*filename.txt"
przydatna jest równieżgit diff master HEAD --name-only
''
) są również ważne!git diff -- src/*.js
powinno byćgit diff -- 'src/*.js'
Aby dołączyć pliki rekurencyjnie (w tym bieżący katalog), działało to dla mnie:
źródło
git diff -- '***.py' ':!.Trashes'
Albo użyj globstar twojej powłoki (który wykonuje wyszukiwanie rekurencyjne) 1 , 2 :
lub użyj znajdź:
Oba są nazwami specjalnymi i dowodami białych znaków. Chociaż możesz chcieć filtrować w poszukiwaniu katalogów z rozszerzeniem .py :)
1
git diff -- {.,**}/*.py
Zwykle lubię to robić2 Gdy globstar jest włączony,
git diff -- **/*.py
zawiera już./*.py
. Na stronie podręcznika Basha: 'Jeśli następuje po nim /, dwa sąsiednie * s będą pasować tylko do katalogów i podkatalogów.'źródło
W przypadku prostych wzorców plików wydaje się to działać:
Bezpieczne odstępy, a także możesz mieć wiele rozszerzeń:
źródło
Argument wiersza poleceń dla rozszerzenia.
Alternatywnie możesz przejść
find
dogit diff
:źródło
git diff *.py
krzyczącymi nagłówkami i bez nichZgodnie z testami na git w wersji 2.18.0, rozszerzenie pliku powinno być cytowane w cudzysłowie. Jeśli chcesz znaleźć ostatnie różnice między repozytorium lokalnym a zdalnym, po ściągnięciu możesz użyć:
Na przykład:
źródło
git diff master@{1} origin/master --name-only -- "*.cs"
Żadna z powyższych odpowiedzi nie wydaje się działać dla mnie w
git bash
systemie Windows. Nie jestem pewien, czy chodzi o wersję (używam 1.8.4), czy o Windows / bash; również w moim przypadku chciałem porównać dwie gałęzie, w których każda gałąź miała dodatkowe pliki, których nie było w drugiej gałęzi (stąd te oparte na „znalezieniu” są niedopuszczalne).W każdym razie zadziałało to dla mnie (w moim przykładzie szukanie różnicy między plikami Pythona):
źródło
git diff
pokaże tylko różnice w plikach niestacjonarnych.Znalazłem to pytanie, ponieważ chciałem wykluczyć
.info
pliki zgit diff
. Osiągnąłem to, ustawiając go za pomocągit add *.info
, co zmniejsza liczbę pozostałych plików.źródło
Skończyło się na tym:
Pokazuje różnice dla określonego zatwierdzenia tylko wtedy, gdy nazwa pliku zawiera słowo „test” (bez rozróżniania wielkości liter) i nie kończy się na
.sql
, zmodyfikuj potok zgodnie z potrzebą.źródło