Câu trả lời:
Chỉ định các đường dẫn một cách rõ ràng:
git diff HEAD:full/path/to/foo full/path/to/bar
Kiểm tra --find-renames
tùy chọn trong git-diff
tài liệu .
Tín dụng: twaggs .
git diff <path> <path>
ngay cả khi chúng không nằm trong kho lưu trữ git.
git diff --help
bạn sẽ thấy rằng các mẫu duy nhất được hỗ trợ cho hai tệp là git diff [<options>] --no-index [--] <path> <path>
. git diff a b
chỉ khớp với các mẫu cam kết, không phải tệp.
--no-index
tùy chọn khi chạy lệnh trong cây làm việc do Git điều khiển và ít nhất một trong các điểm đường dẫn bên ngoài cây làm việc hoặc khi chạy lệnh bên ngoài cây làm việc do Git điều khiển .
Tôi tin rằng sử dụng --no-index
là những gì bạn đang tìm kiếm:
git diff [<options>] --no-index [--] <path> <path>
như đã đề cập trong hướng dẫn sử dụng git:
Biểu mẫu này là để so sánh hai đường dẫn đã cho trên hệ thống tệp. Bạn có thể bỏ qua các
--no-index
tùy chọn khi chạy lệnh trong một cây làm việc điều khiển bởi Git và ít nhất một trong những điểm đường dẫn bên ngoài cây làm việc, hoặc khi chạy lệnh bên ngoài một cây làm việc điều khiển bởi Git.
Nếu bạn đang sử dụng git rùa, bạn có thể nhấp chuột phải vào tệp và git a diff bằng cách: Nhấp chuột phải vào tệp đầu tiên và thông qua menu con rùa rùa chọn "Khác sau" Sau đó, trên tệp thứ hai, bạn cũng có thể nhấp chuột phải vào tệp này , đi tới menu con rùa biển và sau đó chọn "Khác với yourfilenamehere.txt"
Sử dụng PhpStorm, tôi chỉ cần sao chép mã cam kết trước và so sánh nó với phiên bản hiện tại bằng cách sử dụng công cụ "so sánh với clipboard" được tích hợp sẵn.
git diff --no-index --word-diff old_file.txt new_file.txt
(--word-diff đánh dấu các thay đổi theo từng từ, không chỉ theo dòng, điều này cực kỳ hữu ích cho văn bản dài).