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.