2012-09-09 19 views
6

Theo this question, tôi hiểu rằng core.autocrlf = true trong git sẽ khiến CRLF thành bản dịch LF.hiện một kho lưu trữ git có giá trị cục bộ riêng của nó cho core.autocrlf ghi đè lên giá trị toàn cục không?

Tuy nhiên khi tôi gõ: git config core.autocrlf

tôi thấy: sai

Tuy nhiên, khi tôi giai đoạn tập tin sửa đổi đã có trong repo, tôi vẫn nhận được những cảnh báo này:

Warning: CRLF will be replaced by LF in File1.X. 
The file will have its original line endings in your working directory. 

Tôi đoán là bản sao repo của tệp đã được đặt thành "autocrlf = true".

Câu hỏi: A. Làm cách nào để truy vấn liệu tệp hoặc repo git đã bắt buộc AutoCrlf? B. Làm cách nào để tắt tính năng tự động tắt?

Trả lời

6

Git cho phép bạn ghi đè cài đặt chung của mình trên cơ sở từng kho lưu trữ bằng tệp .gitattributes. Bạn đặt nó vào thư mục gốc của kho lưu trữ, và trở thành một tệp được cam kết như một phần của kho lưu trữ. Tôi nghi ngờ điều này đang xảy ra trong trường hợp của bạn.

Github có một trang tốt về điều này: https://help.github.com/articles/dealing-with-line-endings

Nói tóm lại, bạn có thể sử dụng thuộc tính văn bản để thiết lập kết thúc dòng cho một phần mở rộng tập tin cụ thể. Ví dụ: việc buộc các tệp sln vào CRLF sẽ yêu cầu dòng sau trong tệp .gitattributes:

# Declare files that will always have CRLF line endings on checkout. 
*.sln text eol=crlf 
+1

Phải ... vậy ... tôi sẽ đặt gì vào '.gitattributes' tương đương với' lõi .autocrlf = false' trong cấu hình chung của tôi? –

+0

Vì vậy, những điều sau trong '.gitattributes' tương đương với' core.autocrlf = false'? '* -text' –

+0

Số .gitattributes cũng ảnh hưởng đến khả năng hợp nhất nếu bạn loại bỏ nhị phân. – jhclark