Existe uma opção para restringir git diff
a um determinado conjunto de extensões de arquivo?
git
file-extension
vfclists
fonte
fonte
git diff -- *.{c,h,etc}
git diff master HEAD -- "*filename.txt"
também útil é ogit diff master HEAD --name-only
''
) também são importantes!git diff -- src/*.js
deveria ser #git diff -- 'src/*.js'
Para incluir arquivos recursivamente (incluindo o diretório atual), isso funcionou para mim:
fonte
git diff -- '***.py' ':!.Trashes'
Use o globstar do seu shell (que faz uma pesquisa recursiva) 1 , 2 :
ou use find:
Ambos são nomes especiais e à prova de espaço em branco. Embora você possa filtrar os diretórios com a extensão .py :)
1 eu gosto de fazer
git diff -- {.,**}/*.py
normalmente2 Quando o globstar está ativado,
git diff -- **/*.py
já inclui./*.py
. Na página de manual do Bash: 'Se seguido por a /, dois * s adjacentes corresponderão apenas a diretórios e subdiretórios.'fonte
Para padrões de arquivos simples, isso parece funcionar:
Espaço em branco seguro, e você também pode ter várias extensões:
fonte
Argumento de linha de comando para extensão.
Como alternativa, você pode canalizar
find
paragit diff
:fonte
git diff *.py
e sem os cabeçalhos dos gritosConforme testado no git versão 2.18.0, a extensão do arquivo deve ser citada entre aspas duplas. Se você deseja encontrar as últimas diferenças entre o repositório local e o remoto, após puxar, você pode usar:
Por exemplo:
fonte
git diff master@{1} origin/master --name-only -- "*.cs"
Nenhuma das respostas acima parece funcionar para mim
git bash
no Windows. Não tenho certeza se é uma versão (estou usando o 1.8.4) ou Windows / bash; Além disso, no meu caso, eu queria diferenciar dois ramos em que cada ramo tinha arquivos adicionais que não estavam presentes no outro ramo (portanto, os baseados em 'localizar' são negligentes).De qualquer forma, isso funcionou para mim (no meu exemplo, procurando uma diferença entre arquivos python):
fonte
git diff
mostrará apenas diferenças em arquivos não estágios.Encontrei esta pergunta porque queria excluir
.info
arquivos degit diff
. Consegui isso organizando-o comgit add *.info
, o que reduz os arquivos restantes.fonte
Acabei com isso:
Isso mostra diffs para a confirmação especificada apenas se o nome do arquivo contiver a palavra 'teste' (sem distinção entre maiúsculas e minúsculas) e não terminar com
.sql
, modifique o pipeline conforme necessário para o seu caso.fonte