2011-11-22 25 views
42

Tôi đang sử dụng eclipse egit với github. Tôi tìm thấy một cái gì đó kỳ lạ mà tôi đã không thay đổi bất cứ điều gì, nhưng egit đánh dấu các tập tin là "thay đổi". Xem những hình ảnh:Không có gì thay đổi, nhưng eclipse egit đánh dấu tệp là đã thay đổi

  1. file "run.bat" được đánh dấu là "thay đổi"

    enter image description here

  2. Hãy so sánh với "tập tin trong chỉ số Git", bạn có thể thấy không có gì là khác nhau

    enter image description here

  3. Hãy so sánh với "tập tin trong HEAD", bạn có thể thấy không có gì là khác nhau không

    enter image description here

Bạn tôi sử dụng mac và tôi sử dụng cửa sổ, nhưng tất cả chúng ta git cấu hình như "cam kết unix lineend" .. Tôi cũng đã kiểm tra các lineend nguồn của tôi và các HEAD, họ đều giống nhau (Tôi đã định cấu hình git để chuyển đổi chúng thành "\ r \ n" khi kéo)

Trường hợp sai? Đó có phải là lỗi của Egit không?

+1

Kiểm tra kết thúc dòng - CR, CR-LF – kan

+0

"Tôi đã định cấu hình git để chuyển đổi chúng thành" \ r \ n "khi kéo": đó phải là nguyên nhân ngay tại đó, phải không? – VonC

+1

Có vẻ như bạn có kết thúc dòng hỗn hợp trong một tệp. Không chắc nó sẽ hoạt động thế nào. Việc chuyển đổi tự động hầu như không thể dự đoán được cho tôi, tôi vô hiệu hóa nó thường ... – kan

Trả lời

37

Một trong những điều đầu tiên tôi gặp phải trong Git.

Tôi đã nói điều này mãi mãi:

git config --system core.autocrlf false 

Để thoát khỏi CR nổi bật trong quan điểm khác và vá, sử dụng:

git config --system core.whitespace cr-at-eol 

Nếu bạn chia sẻ máy tính của bạn với người khác, thay thế '- -system 'with' --global '.

+0

Cảm ơn bạn, nó giúp ích nhiều! – Freewind

+12

Không giúp tôi. Những thay đổi bạn đề cập đến khi sử dụng lệnh git, nhưng không phải cho EGit. – Ztyx

+3

@Ztyx vui lòng xem câu trả lời của tôi, để có giải pháp EGit. –

46

Eclipse Preferences/Đội Cài đặt/Git/Cấu hình/User

("cốt lõi" phần)

key: autocrlf 
value: false 

Mấu chốt nên đã tồn tại, vì vậy chỉ cần chỉnh sửa các giá trị.

Nếu tạo khóa mới, hãy sử dụng core.autocrlf.

+0

Điều này đã giúp tôi. Cảm ơn! –

+0

Điều này không hiệu quả đối với tôi. Thuộc tính * Location * được hiển thị trong tab User Settings là gitconfig toàn cục của tôi ('C: \ Users \ William \ .gitconfig') và có tất cả các thiết lập chính xác. Tuy nhiên, 'git commit -m' hoạt động tốt trong khi tùy chọn * Commit * của Eclipse không nukes kết thúc dòng của tôi. – wchargin

+1

Điều này đã giúp tôi, nhưng tôi phải xóa repo và nhập lại. –

11

Theo dõi, vì tôi vừa gặp phải vấn đề tương tự, một lý do khác cho EGit phát hiện tất cả các tệp được thay đổi là vấn đề quyền đối với tệp POSIX ít nhất khi được sử dụng cùng với git của Cygwin.

Sau đây sẽ khắc phục điều đó; Tuy nhiên cần lưu ý rằng điều này cũng có nghĩa là họ bỏ qua sau đó:

$ git config core.filemode false

+3

Cảm ơn rất nhiều! Điều này cũng yêu cầu đóng/mở dự án. – Valakyr

+0

Đó cũng là vấn đề của tôi. Bây giờ tôi đã có thể sửa các quyền trên tệp và cam kết điều đó. – jlh

+0

đây cũng là vấn đề của tôi. Cảm ơn bạn rất nhiều, quá khứ MỘT GIỜ tìm kiếm giải pháp đã được đền đáp! –

5

Đối với các vấn đề cụ eclipse cho linefeed, bạn cũng có thể thay đổi nhân vật trở lại trong Preferences Eclipse nơi bạn có thể thay đổi dòng tập tin văn bản mới delimiter từ cú pháp Windows sang Unix sẽ giúp ích.

Eclipse Next File Line Delimiter settings

+0

yup, giải quyết nó mà không cần phải chạm vào bất cứ điều gì liên quan git – ccleve

+1

đây là câu trả lời đúng với autocrlf được đặt thành false –

+0

Thay đổi ** chỉ ** tùy chọn này đã giúp tuy nhiên phải khởi động lại Eclipse của tôi sau khi thay đổi cài đặt đó. BTW Tôi đã đối mặt với vấn đề này khi sử dụng Eclipse trên Windows 10 và tệp đang được báo cáo là đã thay đổi trên Windows-Eclipse ban đầu được sửa đổi trên Ubuntu và được đẩy tới repo từ xa và được kéo trên máy Windows. Cảm ơn. –

-3

Nói chung-> Không gian làm việc.Chọn Mã hóa văn bản UTF-8

+1

Làm thế nào điều này sẽ giúp với các vấn đề kết thúc dòng trong eclipse/git? –

+0

Bạn có thể giải thích một chút không? –

+1

Bạn đã đọc câu hỏi và câu trả lời chưa? Cách mã hóa có liên quan đến vấn đề này? –

2

bạn có thể bỏ qua khoảng trắng khoảng trắng với cài đặt Eclipse trong So sánh/vá. Tuỳ chọn -> Chung -> So sánh/Bản vá, bạn có thể tìm thấy "Bỏ qua khoảng trắng" ở bên phải và chọn tùy chọn này.

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