ฉันจะทิ้งโซลูชันนี้ไว้ที่นั่น 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
มันเป็นเพราะไฟล์จะถูกลบ ขึ้น