2012-03-29 19 views
57

Khi người ta có thể thu thập fromotherposts, chuẩn hóa cuối dòng của Git có ưu điểm và nhược điểm của nó. Tôi có một dự án chỉ dành riêng cho Windows mà tôi nghĩ điều tốt nhất cần làm là tắt hoàn toàn chuẩn hóa cuối dòng. Đó là, tôi muốn để lại tất cả các dòng mới (hầu hết là CRLF) nguyên vẹn, thay vì có git bình thường hóa chúng thành LF chỉ một cách phía sau hậu trường và tôi muốn thay đổi đó ảnh hưởng đến tất cả các bản sao của kho lưu trữ trên tất cả các máy. Câu hỏi là cách hiệu quả nhất để làm điều đó.Làm thế nào để vô hiệu hóa Git end-of-line (CRLF để LF) trên tất cả các dòng vô tính/máy?

Hầu hết các cuộc thảo luận về chuẩn hóa cuối dòng Git là theo số core.autocrlf và tôi có thể hoàn thành mục tiêu của mình bằng cách đặt core.autocrlf=false. Tuy nhiên, đây là một thiết lập git-config, và tôi tin rằng người ta phải đặt riêng nó trên mỗi máy bằng máy. Nếu đúng, điều đó có vẻ dễ xảy ra lỗi, đặc biệt là vì trình cài đặt msysgit hướng dẫn một cài đặt vào thiết lập core.autocrlf=true.

Trả lời

101

Cách tốt nhất để tránh việc phải thiết lập core.autocrlf riêng rẽ trên mỗi máy dường như được kiểm tra một file .gitattributes vào kho chứa dòng

* -text 

Hoặc, nếu bạn có một phiên bản cũ của Git sau đó

* -crlf 

Điều này cho Git biết rằng, đối với tất cả các đường dẫn (do đó, *), không nên cố gắng chuẩn hóa cuối dòng. Theo như tôi có thể nói, điều này không nên có bất kỳ tác dụng phụ nào khác. Đặc biệt, nó không nên thay đổi cách phát sinh diff (điều này có thuộc tính riêng biệt diff/-diff) hoặc cách xử lý hợp nhất (điều này có một thuộc tính riêng biệt merge/-merge).

Để biết thêm chi tiết, tôi đề nghị các nguồn lực:

  1. Các gitattributes tài liệu (git help attributes hoặc an online copy), trong đó mô tả một cách chi tiết cả hai cách end-of-line bình thường hóa hoạt động và các hiệu ứng đặc biệt các thuộc tính khác nhau. (Có lẽ phù hợp nhất là text, crlf, diff, merge, và binary.)
  2. Git mailing list chủ đề Is the "text" attribute meant only to specify end-of-line normalization behavior, or does it have broader implications? (30 tháng 3 2012), trong đó mở rộng về ý nghĩa của các thuộc tính khác nhau, và làm rõ rằng -text không có nghĩa đơn giản là " đây là tệp nhị phân ".
+0

Liên kết trong bài đăng của bạn đã chết. Có lẽ bạn có thể sử dụng cái này để thay thế? http://git.661346.n2.nabble.com/Is-the-quot-text-quot-attribute-meant-only-to-specify-end-of-line-normalization-behavior-or-does-it- -td7420001.html – Antimony