ด้วย Git เมื่อใช้การautocrlf = true
ตั้งค่าสถานะคำเตือนจะยังคงได้รับเมื่อมีการเปลี่ยนแปลงบรรทัดสิ้นสุด
ฉันเข้าใจว่าคำเตือนมีไว้เพื่ออะไรและจะปิดการตั้งค่าสถานะสิ้นสุดบรรทัดได้อย่างไร แต่ฉันจะปิดคำเตือนได้อย่างไร
ด้วย Git เมื่อใช้การautocrlf = true
ตั้งค่าสถานะคำเตือนจะยังคงได้รับเมื่อมีการเปลี่ยนแปลงบรรทัดสิ้นสุด
ฉันเข้าใจว่าคำเตือนมีไว้เพื่ออะไรและจะปิดการตั้งค่าสถานะสิ้นสุดบรรทัดได้อย่างไร แต่ฉันจะปิดคำเตือนได้อย่างไร
คำตอบ:
คุณสามารถปิดการเตือนด้วย
git config --global core.safecrlf false
(นี่จะเป็นการปิดคำเตือนเท่านั้นไม่ใช่ฟังก์ชันเอง)
คุณควรใช้และcore.autocrlf input
core.eol input
หรือเพียงแค่จะไม่ปล่อยให้การเปลี่ยนแปลง Git ปลายเส้นที่ทั้งหมดที่มีautocrlf false
และได้รับการกำจัดของไฮไลท์ของ crlfs ใน diffs, ฯลฯ core.whitespace cr-at-eol
ด้วย
หวังว่านี่จะช่วยได้
คุณกำลังมองหาcore.whitespace
ตัวเลือก (ดูgit config --help
รายละเอียด)
คุณสามารถตั้งค่าตัวเลือกนี้ได้เช่น:
$ git config core.whitespace cr-at-eol
ฉันใช้วิธีนี้:
บันทึกไฟล์ปัจจุบันของคุณใน Git เพื่อไม่ให้งานของคุณสูญหาย
git add . -u git commit -m "Saving files before refreshing line endings"
ลบทุกไฟล์ออกจากดัชนีของ Git
git rm --cached -r .
เขียนใหม่ดัชนี Git เพื่อรับปลายใหม่ทั้งหมด
git reset --hard
เพิ่มไฟล์ที่ถูกเปลี่ยนแปลงทั้งหมดของคุณกลับมาและเตรียมพร้อมสำหรับการคอมมิท นี่เป็นโอกาสของคุณในการตรวจสอบว่ามีไฟล์ใดบ้างที่ไม่เปลี่ยนแปลง
git add . # It is perfectly safe to see a lot of messages here that read # "warning: CRLF will be replaced by LF in file."
ยอมรับการเปลี่ยนแปลงที่เก็บของคุณ
git commit -m "Normalize all the line endings"
git rm --cached -r . && git reset --hard
ดูเหมือนจะทำอุบายขอบคุณ
สนุกพอฉันได้ใช้การกำหนดค่าทั้งสองอย่างที่อธิบายไว้ที่นี่และไฟล์. gitconfig ของฉันมี 2 บรรทัดเหล่านี้:
[core]
autocrlf = false
whitespace = cr-at-eol
แต่ฉันได้รับคำเตือน ทีนี้ลองทำดูคอมเม้นทั้งสองบรรทัดแล้วคำเตือนก็หายไปจริง ๆ ไม่มีความคิดว่าทำไมฉันถึงวางพวกเขาในสถานที่แรก แต่ ...
การตั้งค่าการทำงาน "core.safecrlf false" อย่างไรก็ตามหลังจากฉันเปลี่ยนค่าเป็น 'จริง' ผลลัพธ์จะเปลี่ยนจาก 'คำเตือน' เป็น 'ร้ายแรง' ดังที่แสดงด้านล่าง
$ git add -A
warning: LF will be replaced by CRLF in .gitignore.
The file will have its original line endings in your working directory
$ git config --global core.safecrlf false
$ git reset
$ git config --global core.safecrlf true
$ git add -A
fatal: LF would be replaced by CRLF in .gitignore
$