¿Existe una opción para restringir git diff
a un conjunto dado de extensiones de archivo?
git
file-extension
vfclists
fuente
fuente
git diff -- *.{c,h,etc}
git diff master HEAD -- "*filename.txt"
también es útil elgit diff master HEAD --name-only
''
) también son importantes!git diff -- src/*.js
debería sergit diff -- 'src/*.js'
Para incluir archivos de forma recursiva (incluido el directorio actual) esto funcionó para mí:
fuente
git diff -- '***.py' ':!.Trashes'
Utilice el globstar de su caparazón (que realiza una búsqueda recursiva) 1 , 2 :
o use find:
Ambos son nombres especiales y prueba de espacios en blanco. Aunque es posible que desee filtrar los directorios que tienen la extensión .py :)
1 me gusta hacer
git diff -- {.,**}/*.py
generalmente2 Cuando globstar está habilitado,
git diff -- **/*.py
ya incluye./*.py
. En la página de manual de Bash: 'Si sigue a /, dos * s adyacentes coincidirán solo con directorios y subdirectorios'.fuente
Para patrones de archivos simples, esto parece funcionar:
Whitespace safe, y también puede tener múltiples extensiones:
fuente
Argumento de línea de comando para extensión.
Como alternativa, puede canalizar
find
agit diff
:fuente
git diff *.py
y sin los títulos de gritosComo se probó en la versión 2.18.0 de git, la extensión del archivo debe ser entre comillas dobles. Si desea encontrar las últimas diferencias entre su repositorio local y el remoto, después de extraer, puede usar:
Por ejemplo:
fuente
git diff master@{1} origin/master --name-only -- "*.cs"
Ninguna de las respuestas anteriores parece funcionar para mí
git bash
en Windows. No estoy seguro de si se trata de una versión (estoy usando 1.8.4) o de Windows / bash; Además, en mi caso, quería diferenciar dos ramas donde cada rama tenía archivos adicionales que no estaban presentes en la otra rama (por lo tanto, los basados en "buscar" son negligentes).De todos modos, esto funcionó para mí (en mi ejemplo, buscando una diferencia entre los archivos de Python):
fuente
git diff
solo mostrará diferencias en archivos sin clasificar.Encontré esta pregunta porque quería excluir
.info
archivos degit diff
. Lo logré preparándologit add *.info
, lo que reduce los archivos que quedan.fuente
Terminé con esto:
Esto muestra las diferencias para la confirmación especificada solo si el nombre de archivo contiene la palabra 'prueba' (no distingue entre mayúsculas y minúsculas) y no termina con
.sql
, modifique la canalización según sea necesario para su caso.fuente