Cách so sánh hai tệp không có trong repo bằng git


114

Tôi muốn so sánh hai tệp css không có trong bất kỳ kho lưu trữ git nào. Có một chức năng như vậy trong git không?


Điều gì sẽ xảy ra nếu tôi muốn sử dụng --patiencelá cờ? Bạn có biết một khác biệt (1) có thể làm điều đó?
SamB

Bạn nên chấp nhận câu trả lời của Kyle Burton.
BrodieG

Câu trả lời:


214

gitKhác biệt của có nhiều chức năng hơn so với unix tiêu chuẩn diff. Tôi thường muốn làm điều này và vì câu hỏi này xếp hạng cao trên google, tôi muốn câu trả lời này hiển thị.

Câu hỏi này: Làm thế nào để sử dụng git diff --color-wordsbên ngoài kho lưu trữ Git?

Cho biết cách sử dụng git cho các tệp khác nhau trong đó ít nhất một trong số chúng không có trong kho lưu trữ bằng cách sử dụng --no-index:

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

Không quan trọng cái nào được theo dõi bằng git và cái nào không - một hoặc cả hai đều có thể được bỏ theo dõi, ví dụ:

$ 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

Không thể hiển thị màu ở đây vì vậy tôi đã phân tách các thay đổi bằng một đường ống trong ví dụ.


14
Nếu bạn muốn mặc định hành vi này, bạn có thể thêm một bí danh để bạn .bashrctập tin (hoặc bất cứ điều gì bạn sử dụng):alias diff="git diff --no-index"
counterbeing

1
FYI: Trên Git dành cho Windows, có một lỗi (# 2123) khiến "--no-index" không được coi trọng. Điều này đã được khắc phục trong Git dành cho Windows v2.21.0 (ngày 26 tháng 2 năm 2019).
StackzOfZtuff

Hàng "chỉ mục 6b10c7c..70f036c 100644" có nghĩa là gì? Tôi so sánh 2 mã nhị phân, chúng khác nhau, nhưng đó là hàng duy nhất có sự khác biệt ...
Lukas Salich

xin chào @LukasSalich, có vẻ như định dạng dòng đó có thể được ghi lại bằng git (ví dụ: git-scm.com/docs/diff-format ) git's diff không cố gắng tạo ra các mã nhị phân khác nhau, vì vậy tôi đoán dòng đó có nghĩa là chúng khác nhau , hai SHA nơi một thay đổi được xác định và sau đó là quyền của tệp.
Kyle Burton

3

diff -u

sẽ cung cấp đầu ra ngữ cảnh thống nhất tương tự cho khác biệt của git.


1
Tuy nhiên, nó không tô màu đẹp hoặc sử dụng máy nhắn tin.
Xiong Chiamiov

Nó cũng không cho phép một từ tốt khác ( git diff --word-diff).
Stefan van den Akker

0

Chỉ cần sử dụng lệnh diff:

diff file1.ext file2.ext

2
Hmkay, tôi đã cố gắng này, nhưng theo ý kiến của tôi, đầu ra chỉ là vô nghĩa ... Có lẽ tôi đã sai ...
Cedric Reichenbach

bạn có thể chạy một số công cụ GUI mà sẽ cung cấp cái nhìn tốt hơn, như gvimdiff, Kompare hoặc tương tự
Eugene Sajine
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.