Como comparar dois arquivos que não estão no repo usando git


Respostas:


214

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.

Esta pergunta: como usar git diff --color-wordsfora 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:

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.


14
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.


1
No entanto, não dá uma boa coloração nem usa pager.
Xiong Chiamiov de

Também não permite uma palavra bonita diff ( git diff --word-diff).
Stefan van den Akker

0

Basta usar o comando diff:

diff file1.ext file2.ext

2
Hmkay, eu tentei isso, mas na minha opinião, o resultado foi simplesmente um disparate ... Talvez eu estivesse errado ...
Cedric Reichenbach

você pode executar alguma ferramenta GUI que fornecerá uma melhor visualização, como gvimdiff, kompare ou similar
Eugene Sajine
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.