Come confrontare due file non nel repository utilizzando git


Risposte:


214

gitIl diff è più funzionale dello standard unix diff. Spesso voglio farlo e poiché questa domanda è molto in alto su Google, voglio che questa risposta venga visualizzata.

Questa domanda: come utilizzare git diff --color-wordsal di fuori di un repository Git?

Mostra come usare git per diff file dove almeno uno di loro non è nel repository usando --no-index:

git diff --no-index file1.txt file2.txt

Non importa quale sia tracciato da git e quale no - uno o entrambi possono essere non tracciati, ad esempio:

$ 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

Il colore non può essere mostrato qui, quindi ho separato le modifiche con una pipe nell'esempio.


14
Se volevi questo comportamento predefinito, potresti aggiungere un alias al tuo .bashrcfile (o qualunque cosa tu usi):alias diff="git diff --no-index"
counterbeing

1
FYI: Su Git per Windows c'era un bug (# 2123) che "--no-index" non veniva rispettato. Questo problema è stato risolto in Git per Windows v2.21.0 (26 febbraio 2019).
StackzOfZtuff

Cosa significa la riga "index 6b10c7c..70f036c 100644"? Sto confrontando 2 binari, differiscono, ma questa è l'unica riga con differenza ...
Lukas Salich,

ciao @LukasSalich sembra che il formato della riga possa essere documentato da git (ad esempio: git-scm.com/docs/diff-format ) il diff di git non tenta di diff binari afaik, quindi immagino che la riga significhi che differiscono , i due SHA in cui è stata identificata una modifica e quindi le autorizzazioni del file.
Kyle Burton,

3

diff -u

fornirà un output di contesto unificato simile al diff di git.


1
Tuttavia, non fa una bella colorazione o usa un cercapersone.
Xiong Chiamiov

Non consente nemmeno una bella parola diff ( git diff --word-diff).
Stefan van den Akker

0

Usa semplicemente il comando diff:

diff file1.ext file2.ext

2
Hmkay, ho provato questo ma secondo me l'uscita era solo una sciocchezza ... Forse mi sbagliavo ...
Cedric Reichenbach

puoi eseguire alcuni strumenti GUI che forniranno una vista migliore, come gvimdiff, kompare o simili
Eugene Sajine
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.