2015-06-02 15 views
6

Có quá nhiều bài đăng nhưng độ phân giải vẫn chưa rõ ràng hoặc không hoạt động đối với tôi. Vấn đề dường như được nổi tiếng ..Force SourceTree bỏ qua kết thúc dòng trong các tệp git

  1. Tôi đã kiểm tra ra dự án của tôi trong unix và tình trạng git cho thấy không có sự khác biệt. Cài đặt ở đây:

    bash-3.2$ git config core.autocrlf 
    false 
    bash-3.2$ git config core.whitespace 
    cr-at-eol 
    
  2. Nhưng tôi cũng muốn sử dụng SourceTree (trỏ đến cùng một cơ sở mã Unix qua NFS mount) đối với một số tiện. Cài đặt cho các thuộc tính trên giống hệt nhau.
    Nhưng SourceTree hiển thị một loạt các khác biệt dựa trên kết thúc hoàn toàn dòng.

Giải pháp đơn giản cho điều này là gì?
Cách SourceTree không có cài đặt trong giao diện người dùng xung quanh vấn đề này?

+0

Mở tập tin của bạn với trình chỉnh sửa HEX và xem các ký tự cuối dòng thực sự là gì. Trên Windows, bạn nên có CRLF (bất kể số nào là 2 ký tự). Mã của bạn trên máy Unix, được lấy từ git, có thể có LF. Điều đó tạo nên sự khác biệt. Git được "đào tạo" để xem mã đó như nhau, SourceTree thì không. –

+0

Ngay cả khi tôi chạy "trạng thái git" từ trình bao được cung cấp bởi SourceTree, nó cho thấy những khác biệt đó. Thing là làm thế nào để buộc SourceTree bỏ qua những khác biệt đó? – endless

+0

Tôi không có ý tưởng làm thế nào để cấu hình SourceTree và nếu nó có thể ở tất cả. Nhưng nếu bạn trao đổi mã giữa các nhà phát triển với Git, bạn có thể thiết lập Git để xử lý dòng cuối. –

Trả lời

3

Có một gear icon gần phần diff-ui của ứng dụng SourceTree cho thấy sự khác biệt tập tin của bạn, bạn có thể click vào nó và đặt nó vào show whitespace hoặc ignore whitespace !! Tôi googled trong nhiều giờ, và cuối cùng có câu trả lời sau khi tìm kiếm SourceTree tương đương với lệnh git:

Git version <= 1.8.3.4: 
git diff --ignore-space-at-eol -b -w [commit] ... 

Git version >= 1.8.4: 
git diff --ignore-space-at-eol -b -w --ignore-blank-lines [commit] ... 

See the options definition below: 

--ignore-space-at-eol 
Ignore changes in whitespace at EOL. 

-b 
--ignore-space-change 
Ignore changes in amount of whitespace. This ignores whitespace at line end, 
and considers all other sequences of one or more whitespace characters to be 
equivalent. 

-w 
--ignore-all-space 
Ignore whitespace when comparing lines. This ignores differences even if one 
line has whitespace where the other line has none. 

[git version 1.8.4+]--ignore-blank-lines 
Ignore changes whose lines are all blank. 

The screen shot

Tài liệu tham khảo:

The git command equivalent

Source Tree app settings

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