Cách tiếp cận bạn sẽ phải sử dụng tùy thuộc vào mức độ công khai của kho lưu trữ của bạn.
Nếu bạn không quan tâm hoặc quan tâm đến việc thay đổi tất cả SHA vì bạn ít nhiều chỉ sử dụng SHA nhưng muốn sắp xếp vấn đề này mọi lúc, bạn có thể chạy git filter-branch
và áp dụng dos2unix
cho tất cả tệp trong mỗi lần commit. (Nếu bạn đang chia sẻ kho lưu trữ, mọi người khác cần nhiều hơn hoặc ít hơn để hoàn toàn gia hạn, vì vậy điều này có khả năng gây nguy hiểm.)
Vì vậy, lựa chọn tốt hơn và cách dễ dàng hơn là thay đổi chỉ trong các trình hiện tại . Điều này có nghĩa là các cam kết trước đây của bạn vẫn có các kết thúc \r\n
nhưng trừ khi bạn đang thực hiện nhiều lựa chọn anh đào từ quá khứ, điều này không phải là vấn đề. Các công cụ khác có thể phàn nàn thường xuyên hơn một chút, tất nhiên, nhưng thông thường bạn sẽ chỉ khác với các cam kết trong vùng lân cận, vì vậy vấn đề này tự giải quyết khi các cam kết tích lũy.
Và kết thúc dòng UNIX là tiêu chuẩn, bạn chính xác về điều đó. Cách tiếp cận tốt nhất là thiết lập trình soạn thảo của bạn để chỉ ghi các kết thúc này ngay cả trên các cửa sổ. Nếu không, cũng có cài đặt autocrlf
mà bạn có thể sử dụng.
bổ sung lịch sử viết lại phần:
Thời gian qua tôi đã làm như vậy, tôi đã sử dụng lệnh sau để thay đổi tất cả các file để kết thúc unix.
#!/bin/bash
all2dos() { find * -exec dos2unix {} \; }
export -f all2dos
git filter-branch -f --tree-filter 'all2dos' --tag-name-filter cat --prune-empty -- --all
câu hỏi liên quan cho những người quan tâm đến việc này: http://stackoverflow.com/questions/446244/are-crlf-lines-ok-in-a-rails-project-deployed-on-linux – Blixt