คำเตือน: LF จะถูกแทนที่ด้วย CRLF
ไฟล์ข้อความที่มี LF ไม่จำเป็นต้องบันทึกด้วย CRLF ทั้งนี้ขึ้นอยู่กับโปรแกรมแก้ไขที่คุณใช้: บรรณาธิการล่าสุดสามารถคงสไตล์ eol ได้ แต่การตั้งค่า git นั้นยืนยันที่จะเปลี่ยน ...
ตรวจสอบให้แน่ใจว่า (ตามที่ฉันแนะนำที่นี่ ):
git config --global core.autocrlf false
วิธีการที่คุณหลีกเลี่ยงการเปลี่ยนแปลงใด ๆ โดยอัตโนมัติและยังสามารถระบุพวกเขาผ่าน.gitattributesไฟล์และคำสั่งcore.eol
windows git "LF จะถูกแทนที่ด้วย CRLF"
คำเตือนนี้จะย้อนกลับหรือไม่
ไม่: คุณใช้ Windows และgit configหน้าความช่วยเหลือจะกล่าวถึง
ใช้การตั้งค่านี้หากคุณต้องการให้การCRLFสิ้นสุดบรรทัดในไดเร็กทอรีการทำงานของคุณแม้ว่าที่เก็บไม่มีการสิ้นสุดบรรทัดปกติ
ตามที่อธิบายไว้ใน " คอมไพล์เปลี่ยน LF กับ CRLF " มันควรจะเกิดขึ้นในวันที่เช็คเอาท์ (ไม่กระทำ) core.autocrlf=trueกับ
repo
/ \
crlf->lf lf->crlf
/ \
ตามที่กล่าวไว้ใน คำตอบของXiaoPeng คำเตือนนั้นก็เหมือนกับ:
คำเตือน: (หากคุณตรวจสอบ / หรือโคลนไปยังโฟลเดอร์อื่นด้วยcore.autocrlfการกำหนดค่าปัจจุบันของคุณ) LF จะถูกแทนที่ด้วย CRLF
ไฟล์จะมีการสิ้นสุดบรรทัดดั้งเดิมในไดเรกทอรีการทำงาน (ปัจจุบัน) ของคุณ
ตามที่กล่าวไว้ในgit-for-windows/gitปัญหา 1242 :
ฉันยังรู้สึกว่าข้อความนี้ทำให้เกิดความสับสนข้อความอาจขยายออกไปเพื่อรวมคำอธิบายที่ดีขึ้นของปัญหาตัวอย่างเช่น "LF จะถูกแทนที่ด้วย CRLF file.jsonหลังจากลบไฟล์และตรวจสอบอีกครั้ง"
หมายเหตุ: Git 2.19 (กันยายน 2018) เมื่อใช้core.autocrlf, ปลอม "LF จะถูกแทนที่ด้วย CRLF" เตือนถูกระงับในขณะนี้
ในฐานะที่เป็นquaylarถูกต้องความคิดเห็นหากมีการแปลงบนกระทำก็คือการLFเท่านั้น
คำเตือนเฉพาะนั้น "LF will be replaced by CRLF " นั้นมาจากconvert.c # check_safe_crlf () :
if (checksafe == SAFE_CRLF_WARN)
warning("LF will be replaced by CRLF in %s.
The file will have its original line endings
in your working directory.", path);
else /* i.e. SAFE_CRLF_FAIL */
die("LF would be replaced by CRLF in %s", path);
มันถูกเรียกโดย convert.c#crlf_to_git()ตัวเองเรียกได้ว่าตัวเองเรียกได้ว่าconvert.c#convert_to_git()convert.c#renormalize_buffer()
และสุดท้ายrenormalize_buffer()นั้นถูกเรียกโดยmerge-recursive.c#blob_unchanged()เท่านั้น
ดังนั้นฉันสงสัยว่าการแปลงนี้จะเกิดขึ้นgit commitเฉพาะเมื่อการกระทำดังกล่าวเป็นส่วนหนึ่งของกระบวนการผสาน
หมายเหตุ: ด้วย Git 2.17 (Q2 2018) การล้างรหัสเพิ่มคำอธิบายบางอย่าง
ดูกระทำ 8462ff4 (13 มกราคม 2018) โดยTorsten Bögershausen (tboegi )
(ผสานโดยJunio C Hamano - gitster- in 9bc89b1 , 13 Feb 2018)
convert_to_git (): safe_crlf / checksafe จะกลายเป็น int conv_flags
เมื่อโทรconvert_to_git()ที่checksafeพารามิเตอร์ที่กำหนดไว้ในสิ่งที่ควรจะเกิดขึ้นถ้าแปลง EOL ( CRLF --> LF --> CRLF) ไม่ได้บินหมดจด
นอกจากนี้ยังมีการกำหนดด้วยว่าการสิ้นสุดบรรทัดควรจะทำใหม่ (CRLF --> LF ) หรือเก็บไว้เหมือนเดิม
checksafe เป็นsafe_crlfenum ที่มีค่าเหล่านี้:
SAFE_CRLF_FALSE: do nothing in case of EOL roundtrip errors
SAFE_CRLF_FAIL: die in case of EOL roundtrip errors
SAFE_CRLF_WARN: print a warning in case of EOL roundtrip errors
SAFE_CRLF_RENORMALIZE: change CRLF to LF
SAFE_CRLF_KEEP_CRLF: keep all line endings as they are
โปรดทราบว่าการถดถอยแนะนำใน8462ff4 ( " convert_to_git():
safe_crlf/checksafeกลายเป็นint conv_flags" 2018/01/13, Git 2.17.0) กลับมาอยู่ใน Git 2.17 วงจรที่เกิดจากautocrlfการปรับเปลี่ยนการผลิตข้อความเตือน
แม้จะมีการตั้งค่าsafecrlf=false
ดูกระทำ 6cb0912 (4 มิถุนายน 2018) โดยแอนโธนี Sottile (asottile )
(รวมโดยJunio C Hamano - gitster-ในการกระทำ 8063ff9 , 28 มิถุนายน 2018)