Quiero suprimir toda la salida para files en
dir/*
cuando usas el command
git diff
Decidí seguir las sugerencias de Excluir files de git-diff
Método 1.
Agregar a .git / config
[alias] mydiff = !git diff -- $(git diff --name-only | grep -Ev "dir/")
y usando
git mydiff
funcionó como se esperaba y así resolvió mi problema. Sin embargo, quería usar el Método 2.
Método 2
Agregando a .gitattributes
dir/* -diff
y luego usando
git diff
Produce la salida
diff --git a/dir/1 b/dir/1 deleted file mode 100644 index 05e9130..0000000 ...
Pregunta ¿Cómo suprimir esta salida no deseada para todos los files en dir /?
La razón por la que ve la salida con su configuration es que dir/* -diff
solo marca files en dir
como files binarys, por lo que la diferencia de text no se aplicaría a ellos (ver man 5 gitattributes
).
Para suprimir cualquier salida para files en dir
, debe definir un controller de diff externo como este:
Asigne un nuevo controller de diff "silencioso" (puede elegir su nombre):
$ cat .gitattributes dir/* diff=silent
Definir la function diff "silenciosa":
$ tail -n2 .git/config [diff "silent"] command = "true"
Eso debería hacer el truco.