gitO diff de é mais funcional do que o Unix padrão diff. Costumo fazer isso e, como essa pergunta tem uma classificação elevada no Google, quero que essa resposta apareça.
Mostra como usar o git para diff arquivos onde pelo menos um deles não está no repositório usando --no-index:
git diff --no-index file1.txt file2.txt
Não importa qual é rastreado pelo git e qual não é - um ou ambos podem ser não rastreados, por exemplo:
$ date > x
$ sleep 2
$ date > y
$ git diff --color-words --no-index x y
diff --git a/x b/y
index 6b10c7c..70f036c 100644
--- a/x
+++ a/y
@@ -1 + 1 @@
Wed Jun 10 10:57:45|10:57:47 EDT 2013
A cor não pode ser mostrada aqui, então separei as alterações com uma barra vertical no exemplo.
Se você queria que esse comportamento padrão, você pode adicionar um apelido para o seu .bashrcarquivo (ou o que você usa):alias diff="git diff --no-index"
counterbeing
1
Para sua informação: No Git para Windows, havia um bug (# 2123) que "--no-index" não era respeitado. Isso foi corrigido no Git para Windows v2.21.0 (26 de fevereiro de 2019).
StackzOfZtuff
O que significa a linha "index 6b10c7c..70f036c 100644"? Estou comparando 2 binários, eles diferem, mas essa é a única linha com diferença ...
Lukas Salich
oi @LukasSalich parece que o formato da linha pode ser documentado pelo git (por exemplo: git-scm.com/docs/diff-format ) o diff do git não tenta diferenciar os binários, então estou supondo que essa linha significa que eles diferem , os dois SHAs em que uma alteração foi identificada e as permissões do arquivo.
Kyle Burton
3
diff -u
fornecerá uma saída de contexto unificada semelhante ao diff do git.
--patience
bandeira? Você conhece um diff (1) que pode fazer isso?Respostas:
git
O diff de é mais funcional do que o Unix padrãodiff
. Costumo fazer isso e, como essa pergunta tem uma classificação elevada no Google, quero que essa resposta apareça.Esta pergunta: como usar
git diff --color-words
fora de um repositório Git?Mostra como usar o git para diff arquivos onde pelo menos um deles não está no repositório usando
--no-index
:Não importa qual é rastreado pelo git e qual não é - um ou ambos podem ser não rastreados, por exemplo:
A cor não pode ser mostrada aqui, então separei as alterações com uma barra vertical no exemplo.
fonte
.bashrc
arquivo (ou o que você usa):alias diff="git diff --no-index"
diff -u
fornecerá uma saída de contexto unificada semelhante ao diff do git.
fonte
git diff --word-diff
).Basta usar o comando diff:
fonte