หากคุณใช้ git บนแพลตฟอร์ม Mac คุณอาจเจอไฟล์ DS_Store ในที่เก็บ git สิ่งเหล่านี้อาจสร้างความรำคาญและทำให้ repo git ยุ่งเหยิง และคุณอาจพบกับข้อขัดแย้งที่ไม่จำเป็นเนื่องจากไฟล์.DS_Store ได้รับการดูแลใน git repos ซึ่งคุณอาจเห็นข้อความแสดงข้อผิดพลาด เช่น “ไฟล์.DS_Store และ.DS_Store มีความขัดแย้งกันของต้นไม้” เนื่องจากที่เก็บ git ส่วนใหญ่ไม่ต้องการไฟล์.DS_Store และโดยทั่วไปอาจทำให้เกิดปัญหาได้ จึงมีเหตุผลที่จะลบไฟล์.DS_Store ออกจากที่เก็บ git

ก่อนอื่น หากคุณสงสัยว่าไฟล์ DS_Store คืออะไร ในตอนแรก ไฟล์นั้นเป็นไฟล์ที่มีข้อมูลเมตาเฉพาะโฟลเดอร์ในเครื่อง Mac ดังนั้น ไฟล์.DS_Store จึงรวมทุกอย่างตั้งแต่ข้อมูลเมตาเกี่ยวกับประเภทมุมมอง ขนาดไฟล์/โฟลเดอร์ ข้อมูลภาพขนาดย่อ เค้าโครงโฟลเดอร์ และการปรับแต่งระดับ Finder ไปจนถึงโฟลเดอร์เฉพาะบน Mac เนื่องจากไฟล์.DS_Store ขึ้นต้นด้วย. ในชื่อไฟล์นั้น Finder จะมองไม่เห็น (ทำให้ซ่อนไฟล์ได้อย่างมีประสิทธิภาพ) แต่จะแสดงในบรรทัดคำสั่งและด้วยเครื่องมือบรรทัดคำสั่งหรือตัวจัดการพื้นที่เก็บข้อมูลเช่น git ที่จะรวมทุกไฟล์รวมถึงไฟล์ที่ซ่อนอยู่ในค่าเริ่มต้น ไดเรกทอรี

แม้ว่าไฟล์.DS_Store จะมีประโยชน์สำหรับ Finder อย่างเห็นได้ชัด แต่ก็ไม่มีประโยชน์สำหรับการมีในที่เก็บ git มาดูวิธีที่คุณสามารถลบไฟล์ DS_Store ทั้งหมดออกจาก git repo และวิธีป้องกันไม่ให้ถูกเก็บไว้ในที่เก็บ git ในอนาคตเช่นกัน

วิธีลบไฟล์.DS_Store ที่มีอยู่ออกจาก Git Repository

เปิด Terminal และไปที่ไดเร็กทอรี repo git ที่คุณต้องการล้างไฟล์.DS_Store ป้อนสตริงคำสั่งต่อไปนี้:

find.-ชื่อ.DS_Store-print0 | xargs-0 git rm-f–ignore-unmatch

ซึ่งจะค้นหาไฟล์.DS_Store และลบออก

หากคุณต้องการไปไกลกว่านี้ คุณสามารถลบ DS_Store ทั้งหมดได้ ไฟล์จาก Mac โดยใช้รูปแบบอื่นของคำสั่ง find แต่ระวังด้วยการทำเช่นนั้น คุณจะสูญเสียการปรับแต่งหน้าต่างและโฟลเดอร์ Finder ใดๆ และทั้งหมด ดังนั้นจึงไม่แนะนำให้ไปที่เส้นทางนั้นโดยเฉพาะ

วิธีเพิกเฉยต่อไฟล์.DS_Store ใน git

เรามาก้าวต่อไปกันดีกว่า และป้องกันไม่ให้ git ดูแลรักษาและคอมมิตไฟล์ DS_Store ตั้งแต่แรก และไม่ต้องสนใจเลย ซึ่งทำได้โดยการแก้ไข (หรือสร้าง) ไฟล์.gitignore ในไดเร็กทอรี repo ที่ใช้งานอยู่:

echo.DS_Store >>.gitignore

ตอนนี้คุณจะต้องเพิ่ม.gitignore ไฟล์ไปยังที่เก็บของคุณและยอมรับการเปลี่ยนแปลง

git add.gitignore

git commit-m’Ignoring.DS_Store Files’

สิ่งที่คุ้มค่า ไม่ใช่แค่คอมไพล์เท่านั้นที่อาจพบปัญหาเกี่ยวกับการสร้างไฟล์.DS_Store หรือความยุ่งเหยิง หรือที่อาจได้ประโยชน์จากการเพิกเฉย คุณยังสามารถแยกไฟล์ DS_Store ออกจากไฟล์ zip ที่สร้างขึ้นบน Mac ซึ่งสามารถช่วยได้ เพื่อลดความยุ่งเหยิง (และป้องกันไม่ให้ข้อมูลเมตาเฉพาะเครื่อง) ถูกเก็บไว้ในไฟล์ zip และคุณอาจพบว่าไฟล์.DS_Store นั้นน่ารังเกียจสำหรับสภาพแวดล้อมเครือข่าย แต่คำสั่งเริ่มต้นสามารถป้องกันการสร้างไฟล์ DS_Store สำหรับวอลุ่มเครือข่ายได้หากจำเป็น

ที่เกี่ยวข้อง

Categories: IT Info