Tôi có máy Windows có dự án VS và tôi sử dụng cả Visual Studio và các công cụ từ môi trường Cygwin bao gồm Git. Đôi khi tôi nhận được kết thúc dòng khác nhau trong các tệp sau khi chỉnh sửa. Tôi muốn giải pháp đơn giản để kiểm tra tính nhất quán của dòng kết thúc trước khi họ đi đến repo. Git của core.safecrlf
là điều đúng tôi cho là. Bây giờ tôi có một hành vi kỳ lạ:Git core.safecrlf hành vi khác nhau trên các tệp có cùng dòng cuối
tập tin A
và B
với các thông số sau:
$file A
A: HTML document, UTF-8 Unicode text, with CRLF line terminators
$file B
B: HTML document, UTF-8 Unicode (with BOM) text, with CRLF line terminators
file A là đã có trong repo, file B là cái mới. Lưu ý, cả hai đều có kết thúc dòng CRLF. Bây giờ, hãy thử giai đoạn chúng, core.safecrlf
là true
.
$git add A # ok
$git add B # fails
fatal: CRLF would be replaced by LF in B.
Đang sử dụng core.safecrlf
chính xác? Hoặc có lẽ tôi cần phải viết móc để kiểm tra các tập tin?
Ghi chú:
- thử với mã hóa tập tin khác nhau (có và không có BOM), không có sự khác biệt.
- có có liên quan
core.autocrlf
tính năng trong Git, thêm nó vào thẻ (Stackoverflow không có thẻ chocore.safecrlf
) - git phiên bản 1.8.5.rc1.17.g0ecd94d (tổng hợp từ các nguồn dưới Cygwin)
EDIT # 1: đã kiểm tra core.autocrlf
- đó là input
. Đã thay đổi thành false
, bây giờ tôi có thể thêm cả hai tệp. Tại sao?