ฉันชอบที่จะใช้git diff -w
เพื่อละเว้นความแตกต่างของช่องว่าง แต่ฉันเพิ่งสังเกตเห็นว่ามันไม่สนใจแม้แต่ความแตกต่างของช่องว่างในช่วงกลางของบรรทัด ฉันจะละเว้นความแตกต่างของช่องว่างที่เกิดขึ้นที่จุดเริ่มต้น (^) หรือสิ้นสุด ($) ของเส้นได้อย่างไร
ฉันชอบที่จะใช้git diff -w
เพื่อละเว้นความแตกต่างของช่องว่าง แต่ฉันเพิ่งสังเกตเห็นว่ามันไม่สนใจแม้แต่ความแตกต่างของช่องว่างในช่วงกลางของบรรทัด ฉันจะละเว้นความแตกต่างของช่องว่างที่เกิดขึ้นที่จุดเริ่มต้น (^) หรือสิ้นสุด ($) ของเส้นได้อย่างไร
คำตอบ:
สำหรับการใช้งานในตอนท้ายของบรรทัด:
git diff --ignore-space-at-eol
แทนที่จะเป็นสิ่งที่คุณใช้ในปัจจุบัน:
git diff -w (--ignore-all-space)
สำหรับการเริ่มต้นของบรรทัด ... คุณโชคไม่ดีถ้าคุณต้องการวิธีแก้ปัญหาในตัว
อย่างไรก็ตามหากคุณไม่สนใจที่จะทำให้มือสกปรกมีแพทช์ค่อนข้างเก่าลอยอยู่ที่ไหนสักแห่งที่เพิ่มการสนับสนุนสำหรับ "--ignore-space-at-sol"
นี่เป็นคำถามเก่า แต่ก็ยังมีการดู / จำเป็นอย่างสม่ำเสมอ ฉันต้องการโพสต์เพื่อเตือนผู้อ่านอย่างฉันว่าช่องว่างตามที่กล่าวถึงในคำถามของ OP ไม่เหมือนกับคำจำกัดความของ Regex รวมถึงการขึ้นบรรทัดใหม่แท็บและอักขระเว้นวรรค - Git ขอให้คุณชัดเจน ดูตัวเลือกบางอย่างที่นี่: https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
ตามที่ระบุไว้git diff -b
หรือgit diff --ignore-space-change
จะละเว้นช่องว่างที่บรรทัดสิ้นสุด หากคุณต้องการให้การตั้งค่านั้นเป็นพฤติกรรมเริ่มต้นของคุณบรรทัดต่อไปนี้จะเพิ่มความตั้งใจนั้นลงในไฟล์. gitconfig ของคุณดังนั้นมันจะไม่สนใจช่องว่างที่บรรทัดสุดท้ายเสมอ:
git config --global core.whitespace trailing-space
ในกรณีของฉันฉันพบคำถามนี้เพราะฉันสนใจที่จะเพิกเฉยต่อ "ความแตกต่างของช่องว่างการส่งคืนช่องว่าง" ดังนั้นฉันต้องการสิ่งนี้:
git diff --ignore-cr-at-eol
หรือ
git config --global core.whitespace cr-at-eol
จากที่นี่
คุณสามารถกำหนดให้เป็นค่าเริ่มต้นสำหรับ repo นั้นได้โดยไม่ใช้พารามิเตอร์ --global และตรวจสอบในไฟล์การตั้งค่าสำหรับ repo นั้น สำหรับปัญหา CR ที่ฉันพบมันหายไปหลังจากเช็คอินถ้า warncrlf หรือ autocrlf = true ในส่วน [core] ของไฟล์. gitconfig
git diff -b
แทนไหม?