Tôi sẽ ném giải pháp này ra khỏi đó. Git sẽ làm điều này. Xem bài này về nó
Vì vậy, về mặt lý thuyết bạn có thể làm điều này để chuyển đổi toàn bộ cây
cd root/of/tree
git init .
git add .
git commit -m "initial commit"
echo "* text eol=crlf" > .gitattributes
git rm --cached -r .
git reset --hard
Thay đổi crlf
thành lf
nếu bạn muốn đi theo con đường khác. LƯU Ý: bạn chưa hoàn thành, hãy tiếp tục đọc
Nhập git status
để xem tập tin nào sẽ bị ảnh hưởng. Bạn có thể phải thêm các dòng như
*.jpg binary
*.png binary
*.gif binary
vv để .gitattributes
tránh chuyển đổi các tập tin nhất định. Bạn cũng có thể đánh dấu rõ ràng một số tệp nhất định dưới dạng văn bản
*.md text
*.css text
Sau đó, chỉ cần lặp lại 2 dòng này sau khi bạn chỉnh sửa .gitattributes
git rm --cached -r .
git reset --hard
Sau đó sử dụng git status
lại để xem tập tin nào sẽ được thay đổi. Khi bạn chắc chắn tất cả các tệp bạn muốn bị ảnh hưởng sẽ được liệt kê git status
sau đó cam kết
git add .
git commit -m "normalize line endings"
Bây giờ hãy kiểm tra lại tất cả các tập tin
git rm --cached -r .
git reset --hard
Bây giờ họ sẽ có bất cứ kết thúc dòng mong muốn của bạn là gì
** LƯU Ý: Nếu bạn đã sử dụng git, hãy bỏ qua 3 lệnh git đầu tiên. Nếu bạn không sử dụng git, bây giờ bạn có thể xóa .gitattributes
tệp và .git
thư mục.
** Sao lưu các tệp của bạn: git rm --cached -r
xóa tất cả chúng (mặc dù về mặt lý thuyết là trong repit git của bạn (thư mục .git), đó là cách chúng được khôi phục bằng lệnh cuối cùng git reset --hard
. Chỉ vì các tệp đang bị xóa, có lẽ tốt nhất là sao lưu chúng lên.