Android

ละเว้นไฟล์และไดเรกทอรีใน git (.gitignore)

เวก้าผับ ฉบับพิเศษ

เวก้าผับ ฉบับพิเศษ

สารบัญ:

Anonim

บ่อยครั้งเมื่อทำงานกับโครงการที่ใช้ Git คุณจะต้องการยกเว้นไฟล์หรือไดเรกทอรีเฉพาะจากการถูกผลักไปยังพื้นที่เก็บข้อมูลระยะไกล

ไฟล์ .gitignore ระบุว่า Git ไฟล์ใดที่ไม่ได้ติดตามควรละเว้น

ไฟล์ใดควรละเว้น?

ไฟล์ที่ถูกละเว้นมักเป็นไฟล์เฉพาะแพล็ตฟอร์มหรือไฟล์ที่สร้างขึ้นโดยอัตโนมัติจากระบบบิลด์ ตัวอย่างทั่วไป ได้แก่:

  • ไฟล์รันไทม์เช่นล็อกล็อกแคชหรือไฟล์ชั่วคราวไฟล์ที่มีข้อมูลที่ละเอียดอ่อนเช่นรหัสผ่านหรือคีย์ API รหัสที่คอมไพล์เช่น .class หรือ .o ไดเรกทอรีพึ่งพาเช่น /vendor หรือ /node_modules node_modules เช่น /public , /out หรือ /dist ระบบไฟล์เช่น .DS_Store หรือ Thumbs.db IDE หรือไฟล์การกำหนดค่าตัวแก้ไขข้อความ

.gitignore

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

รูปแบบที่กำหนดในไฟล์ที่อยู่ในไดเรกทอรีระดับล่าง (ไดเรกทอรีย่อย) มีความสำคัญเหนือกว่าในไดเรกทอรีระดับสูง

ไฟล์ .gitignore โลคัลถูกแบ่งใช้กับผู้พัฒนาอื่นและควรมีรูปแบบที่มีประโยชน์สำหรับผู้ใช้อื่น ๆ ทั้งหมดของที่เก็บ

กฎการเพิกเฉยส่วนตัว

รูปแบบที่เฉพาะเจาะจงกับที่เก็บในเครื่องของคุณและไม่ควรแจกจ่ายไปยังที่เก็บอื่นควรตั้งค่าในไฟล์ .git/info/exclude

ตัวอย่างเช่นคุณสามารถใช้ไฟล์นี้เพื่อละเว้นไฟล์ที่สร้างขึ้นจากเครื่องมือโครงการส่วนบุคคลของคุณ

.gitignore ทั่วโลก

Git ยังช่วยให้คุณสร้างไฟล์ .gitignore ทั่วโลกซึ่งคุณสามารถกำหนดกฎการเพิกเฉยสำหรับที่เก็บ Git ทั้งหมดในระบบโลคัลของคุณ

ไฟล์สามารถตั้งชื่อสิ่งที่คุณชอบและเก็บไว้ในตำแหน่งใดก็ได้ ตำแหน่งที่พบบ่อยที่สุดในการเก็บไฟล์นี้คือโฮมไดเร็กตอรี่ คุณจะต้องสร้างไฟล์ด้วยตนเองและกำหนดค่า Git เพื่อใช้งาน

ตัวอย่างเช่นหากต้องการตั้งค่า ~/.gitignore_global เป็นไฟล์ Git แบบข้ามคุณต้องทำดังต่อไปนี้:

  1. สร้างไฟล์:

    touch ~/.gitignore_global

    เพิ่มไฟล์ในการกำหนดค่า Git:

    git config --global core.excludesfile ~/.gitignore_global

    เปิดไฟล์ด้วยโปรแกรมแก้ไขข้อความและเพิ่มกฎของคุณลงไป

กฎทั่วโลกมีประโยชน์อย่างยิ่งสำหรับการเพิกเฉยต่อไฟล์บางไฟล์ที่คุณไม่ต้องการกระทำเช่นไฟล์ที่มีข้อมูลที่ละเอียดอ่อนหรือไฟล์ประมวลผลที่คอมไพล์แล้ว

ละเว้นไฟล์ที่ถูกคอมมิตไว้ก่อนหน้านี้

ไฟล์ในสำเนาการทำงานของคุณสามารถติดตามหรือไม่ได้ติดตามได้

ในการเพิกเฉยไฟล์ที่มีการผูกมัดไว้ก่อนหน้านี้คุณจะต้องยกเลิกการติดตั้งและลบไฟล์ออกจากดัชนีแล้วเพิ่มกฎสำหรับไฟล์ใน .gitignore :

git rm --cached filename

ตัวเลือก --cached บอก git ไม่ให้ลบไฟล์ออกจาก --cached การทำงาน แต่จะลบออกจากดัชนีเท่านั้น

หากต้องการลบไดเรกทอรีซ้ำให้ใช้ตัวเลือก -r :

git rm --cached filename

เมื่อลบไฟล์ซ้ำให้ใช้ตัวเลือก -n ที่จะทำการ“ เรียกใช้แบบแห้ง” และแสดงไฟล์ที่จะถูกลบ:

git rm -r -n directory

การดีบักไฟล์ .gitignore

บางครั้งอาจเป็นเรื่องท้าทายที่จะพิจารณาว่าเหตุใดไฟล์บางไฟล์จึงถูกเพิกเฉยโดยเฉพาะเมื่อคุณใช้ไฟล์ .gitignore หรือรูปแบบที่ซับซ้อนหลายไฟล์ นี่คือที่ที่คำสั่ง git check-ignore พร้อมกับตัวเลือก -v ซึ่งบอกให้ git แสดงรายละเอียดเกี่ยวกับรูปแบบการจับคู่มาสะดวก

ตัวอย่างเช่นในการตรวจสอบสาเหตุที่ไฟล์ www/yarn.lock ถูกละเว้นคุณจะต้องเรียกใช้:

git check-ignore -v www/yarn.lock

เอาต์พุตแสดงพา ธ ไปยังไฟล์ gitignore จำนวนบรรทัดที่ตรงกันและรูปแบบที่แท้จริง

www/.gitignore:31:/yarn.lock www/yarn.lock

คำสั่งยังยอมรับชื่อไฟล์มากกว่าหนึ่งชื่อเป็นอาร์กิวเมนต์และไฟล์ไม่จำเป็นต้องมีอยู่ในแผนผังการทำงานของคุณ

การแสดงไฟล์ที่ถูกละเว้นทั้งหมด

คำสั่ง git status พร้อมตัวเลือก --ignored การ --ignored จะแสดงรายการไฟล์ที่ถูกละเว้นทั้งหมด:

git status --ignored

ข้อสรุป

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

gitignore.io เป็นบริการออนไลน์ที่ให้คุณสร้างไฟล์ .gitignore สำหรับระบบปฏิบัติการภาษาการเขียนโปรแกรมหรือ IDE