2009-04-20 31 views
9

Chức năng khác trong git có "phát hiện sao chép" - nếu phát hiện tệp mới thực sự là bản sao (có thể sửa đổi) của tệp hiện có, đầu ra khác cho thấy sự khác biệt giữa tệp nguồn và tệp mới thay vì chỉ là một loạt các bổ sung từ một tập tin trống vào tập tin mới.Tôi có thể buộc git diff xử lý tệp dưới dạng bản sao không?

Theo như tôi có thể biết, git diff sử dụng một số chẩn đoán để phát hiện tình trạng này. Thật không may nó không phát hiện một tập tin mới cụ thể như là một bản sao của tập tin khác bởi vì tôi đoán nó đã thay đổi quá nhiều. Tôi vẫn muốn xem diff như thể nó là một bản sao. Có cách nào để thông báo cho git diff rằng tệp mới là bản sao của một tệp khác để nó sẽ làm điều này cho tôi không?

Trả lời

3

git diff (ít nhất là phiên bản 1.5.6 của tôi) đi kèm với công tắc --find-copies-harder, tính năng phát hiện bản sao chuyên sâu hơn nhiều so với thường lệ -C.

+0

tôi đã cố gắng --find-bản-chăm chỉ hơn và nó vẫn không phát hiện tập tin mới của tôi như là một bản sao của một tệp hiện có. – nohat

0

Chỉ muốn đảm bảo rằng nó đã được thêm vào repo git.

Ngoài ra nếu bạn biết tệp gốc, tại sao không sử dụng diff trực tiếp?

+0

Sử dụng diff trực tiếp hoạt động tuyệt vời, nhưng tôi muốn có sự khác biệt trong kết quả 'git diff' của tôi. – nohat

+0

có tệp mới được thêm vào git repo không? – sfossen

0

Bạn đã thử đặt cả hai tệp trong tệp khác?

cái gì đó như

git diff --stat -p --find-copies-harder -- src/OldFile.java src/main/NewFile.java 

Tôi tưởng tượng bạn đã làm, chỉ trong trường hợp ...

Các vấn đề liên quan