ฉันจะทิ้งโซลูชันนี้ไว้ที่นั่น Git จะทำเช่นนี้ ดูโพสต์นี้เกี่ยวกับมัน
ในทางทฤษฎีคุณสามารถทำสิ่งนี้เพื่อแปลงต้นไม้ทั้งหมด
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
เปลี่ยนcrlfเป็นlfถ้าคุณต้องการไปทางอื่น หมายเหตุ: คุณยังไม่ได้อ่านต่อ
พิมพ์git statusเพื่อดูว่าไฟล์ใดจะได้รับผลกระทบ คุณอาจต้องเพิ่มบรรทัดเช่น
*.jpg binary
*.png binary
*.gif binary
ฯลฯ เพื่อ.gitattributesหลีกเลี่ยงการแปลงไฟล์บางไฟล์ นอกจากนี้คุณยังสามารถทำเครื่องหมายไฟล์บางไฟล์เป็นข้อความได้อย่างชัดเจน
*.md text
*.css text
จากนั้นเพียงแค่ทำซ้ำ 2 บรรทัดนี้หลังจากที่คุณแก้ไข .gitattributes
git rm --cached -r .
git reset --hard
จากนั้นใช้git statusอีกครั้งเพื่อดูว่าไฟล์ใดบ้างที่จะถูกเปลี่ยน เมื่อคุณกำลังตรวจสอบว่าไฟล์ทั้งหมดที่คุณต้องการได้รับผลกระทบโดยระบุgit statusแล้วกระทำ
git add .
git commit -m "normalize line endings"
ตรวจสอบไฟล์ทั้งหมดอีกครั้ง
git rm --cached -r .
git reset --hard
ตอนนี้พวกเขาควรจะมีสิ่งที่ปลายสายที่คุณต้องการ
** หมายเหตุ: หากคุณใช้ git อยู่แล้วให้ข้ามคำสั่ง git 3 คำสั่งแรก หากคุณไม่ได้ใช้ git คุณสามารถลบ.gitattributesไฟล์และ.gitโฟลเดอร์ได้แล้ว
** สำรองไฟล์ของคุณ: git rm --cached -rลบมันทั้งหมด (แม้ว่าพวกมันจะมีเหตุผลใน repo git ของคุณ (โฟลเดอร์. git) ซึ่งเป็นวิธีที่พวกเขาได้รับการกู้คืนโดยคำสั่งสุดท้ายgit reset --hardมันเป็นเพราะไฟล์จะถูกลบ ขึ้น