Bagaimana membandingkan dua file yang tidak di repo menggunakan git


Jawaban:


214

gitDiff lebih fungsional daripada unix standar diff. Saya sering ingin melakukan ini dan karena pertanyaan ini mendapat peringkat tinggi di google, saya ingin jawaban ini muncul.

Pertanyaan ini: Bagaimana cara menggunakan di git diff --color-wordsluar repositori Git?

Menunjukkan bagaimana menggunakan git untuk menyebarkan berkas yang setidaknya salah satunya tidak ada dalam repositori dengan menggunakan --no-index:

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

Tidak masalah mana yang dilacak oleh git dan mana yang tidak - salah satu atau keduanya tidak dapat dilacak, misalnya:

$ 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

Warnanya tidak bisa ditampilkan di sini jadi saya memisahkan perubahan dengan pipa di contoh.


14
Jika Anda ingin perilaku ini default, Anda dapat menambahkan alias ke .bashrcfile Anda (atau apa pun yang Anda gunakan):alias diff="git diff --no-index"
mengimbangi

1
FYI: Pada Git untuk Windows ada bug (# 2123) yang "--no-index" tidak dihormati. Ini telah diperbaiki di Git untuk Windows v2.21.0 (26 Februari 2019).
StackzOfZtuff

Apa arti baris "index 6b10c7c..70f036c 100644"? Saya membandingkan 2 biner, mereka berbeda, tetapi itu adalah satu-satunya baris dengan perbedaan ...
Lukas Salich

hai @LukasSalich sepertinya format baris itu mungkin didokumentasikan oleh git (misalnya: git-scm.com/docs/diff-format ) git's diff tidak mencoba untuk membedakan biner afaik, jadi saya menebak baris itu berarti mereka berbeda , dua SHA tempat perubahan diidentifikasi dan kemudian izin file.
Kyle Burton

3

diff -u

akan memberikan keluaran konteks terpadu yang mirip dengan git's diff.


1
Namun, itu tidak mewarnai bagus atau menggunakan pager.
Xiong Chiamiov

Itu juga tidak mengizinkan kata yang bagus diff, baik ( git diff --word-diff).
Stefan van den Akker

0

Cukup gunakan perintah diff:

diff file1.ext file2.ext

2
Hmkay, saya mencoba ini tetapi menurut saya, hasilnya tidak masuk akal ... Mungkin saya salah ...
Cedric Reichenbach

Anda dapat menjalankan beberapa alat GUI yang akan memberikan tampilan yang lebih baik, seperti gvimdiff, kompare atau serupa
Eugene Sajine
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.