ฉันมีที่เก็บ Git ที่สามารถเข้าถึงได้จากทั้ง Windows และ OS X และฉันรู้ว่ามีไฟล์บางไฟล์ที่มี CRLF line-endings เท่าที่ฉันสามารถบอกได้มีสองวิธีในการจัดการกับเรื่องนี้:
ตั้ง
core.autocrlf
ไปfalse
ทุกที่ทำตามคำแนะนำที่นี่ (echoed บนหน้าความช่วยเหลือของ GitHub) เพื่อแปลงพื้นที่เก็บข้อมูลให้มีเฉพาะจุดสิ้นสุด LF และหลังจากนั้นตั้ง
core.autocrlf
เป็นtrue
Windows และinput
OS X ปัญหาในการทำเช่นนี้คือถ้าฉันมีไฟล์ไบนารีใด ๆ ในที่เก็บ ที่:- ทำเครื่องหมายไม่ถูกต้องว่าเป็นไบนารีใน gitattributes และ
- มีทั้ง CRLF และ LF
พวกเขาจะเสียหาย เป็นไปได้ว่าที่เก็บของฉันมีไฟล์ดังกล่าว
เหตุใดฉันจึงไม่ควรปิดการแปลงตอนจบของ Git มีคำเตือนที่คลุมเครือบนเว็บจำนวนมากเกี่ยวกับการcore.autocrlf
ปิดสวิตช์ที่ก่อให้เกิดปัญหา แต่มีน้อยมากโดยเฉพาะคน; สิ่งเดียวที่ฉันได้พบจนถึงขณะนี้คือ kdiff3 ไม่สามารถจัดการกับตอนจบ CRLF (ไม่ใช่ปัญหาสำหรับฉัน) และตัวแก้ไขข้อความบางรายการมีปัญหาในการสิ้นสุดบรรทัด (เช่นกันไม่ใช่ปัญหาสำหรับฉัน)
ที่เก็บอยู่ภายใน บริษัท ของฉันดังนั้นฉันไม่ต้องกังวลเกี่ยวกับการแบ่งปันกับผู้ที่มีการตั้งค่า autocrlf หรือข้อกำหนดการสิ้นสุดบรรทัดต่าง ๆ
มีปัญหาอื่นอีกหรือไม่ที่เพิ่งออกจากสายงานตอนจบตามที่ฉันไม่รู้?
autocrlf
เป็นเท็จ ฉันกำลังมองหาสาเหตุที่ทำให้มันเป็นจริง
autocrlf = input
: มันดูเหมือนจะเป็นความละเอียดที่สมบูรณ์แบบระหว่างสองขั้ว: คุณรักษา repo ของคุณจาก CRLF crap และนักพัฒนา Windows ในพื้นที่สามารถใช้สิ่งที่พวกเขาต้องการโดยไม่ต้องใช้ไฟล์ภายในเครื่อง (พวกเขาอาจต้องการ LF ในประเทศด้วยเหตุผลต่างๆดังนั้นtrue
จะไม่ดีในความคิดของฉัน.) ฉันไม่สามารถเห็นข้อเสียใด ๆ autocrlf = input
ที่จะใช้
autocrlf
ให้เป็นเท็จ