Tôi có kho lưu trữ Git được truy cập từ cả Windows và OS X và tôi biết rằng đã chứa một số tệp có kết thúc dòng CRLF. Theo như tôi có thể nói, có hai cách để giải quyết vấn đề này:
Đặt
core.autocrlf
đểfalse
ở khắp mọi nơi,Làm theo các hướng dẫn ở đây (được lặp lại trên các trang trợ giúp của GitHub) để chuyển đổi kho lưu trữ để chỉ chứa các kết thúc dòng của LF và sau đó được đặt
core.autocrlf
thànhtrue
trên Windows vàinput
trên OS X. Vấn đề với việc này là nếu tôi có bất kỳ tệp nhị phân nào trong kho lưu trữ cái đó:- không được đánh dấu chính xác là nhị phân trong gitattribut và
- tình cờ có chứa cả CRLF và LF,
họ sẽ bị hỏng Có thể kho lưu trữ của tôi chứa các tập tin như vậy.
Vậy tại sao tôi không nên tắt chuyển đổi kết thúc dòng của Git? Có rất nhiều cảnh báo mơ hồ trên web về việc core.autocrlf
đã tắt gây ra sự cố, nhưng rất ít vấn đề cụ thể ; điều duy nhất tôi tìm thấy cho đến nay là kdiff3 không thể xử lý các kết thúc CRLF (không phải là vấn đề đối với tôi) và một số trình soạn thảo văn bản có vấn đề kết thúc dòng (cũng không phải là vấn đề đối với tôi).
Kho lưu trữ là nội bộ của công ty tôi và vì vậy tôi không cần phải lo lắng về việc chia sẻ nó với những người có cài đặt autocrlf khác nhau hoặc yêu cầu kết thúc dòng.
Có bất kỳ vấn đề nào khác khi chỉ để lại kết thúc dòng như là tôi không biết?
autocrlf
thành false. Tôi đang tìm kiếm lý do để đặt nó thành sự thật.
autocrlf = input
: nó dường như là độ phân giải hoàn hảo giữa hai thái cực: bạn giữ repo sạch khỏi cRLF và các nhà phát triển Windows cục bộ có thể sử dụng bất cứ thứ gì họ muốn mà không cần các tệp cục bộ tự động thực hiện. ( true
Theo ý kiến của tôi, họ có thể muốn LF vì nhiều lý do, vì vậy, thật tệ, theo quan điểm của tôi.) Tôi không thể thấy bất kỳ nhược điểm nào khi sử dụng autocrlf = input
.
autocrlf
sai.