GitHub กลายเป็นผู้บุกเบิกชั้นนำในด้านการทำงานร่วมกันของโค้ดและการแบ่งปันพื้นที่เก็บข้อมูล GitHub เป็นซอฟต์แวร์ควบคุมเวอร์ชันเป็นหลักซึ่งช่วยให้ผู้ใช้สามารถควบคุมการควบคุมเวอร์ชันกระจายและ SCM (การจัดการซอร์สโค้ด) แพลตฟอร์มนี้ถูกใช้โดยธุรกิจและ บริษัท ใหญ่ ๆ ทั่วโลก
แพลตฟอร์มเหล่านี้มีคุณสมบัติทางเทคนิคและปัญหา ปัญหาเฉพาะอย่างหนึ่งที่ผู้เขียนโปรแกรมพบคือ. gitignore ไม่ทำงานใน GitHub แพลตฟอร์มไม่สนใจ. gitignore หรือทำงานบางส่วน เป็นที่น่าสังเกตว่าปัญหาอาจแตกต่างกันเล็กน้อยในแต่ละกรณีเนื่องจากแต่ละกรณีเป็นสถานการณ์ที่แตกต่างกันอย่างสิ้นเชิง อย่างไรก็ตามโซลูชันที่เราระบุไว้จะมีการแก้ไขซึ่งจะทำงานได้ในระดับสากล
. gitignore คืออะไร?
Git (หรือ GitHub) จะเห็นทุกไฟล์ในไดเรกทอรีการทำงานของคุณ มันกำหนดลักษณะแต่ละไฟล์เป็นหนึ่งในสาม:
- ติดตาม:ไฟล์เหล่านี้ถูกผูกมัดหรือจัดฉากก่อนหน้านี้ในประวัติ
- ที่ไม่ได้ติดตาม:เหล่านี้เป็นไฟล์ที่ยังไม่ได้รับก่อนหน้านี้ฉากหรือความมุ่งมั่น
- ละเว้น:ไฟล์เหล่านี้เป็นไฟล์ที่ผู้ใช้เองบอกให้ Git ละเว้นโดยสิ้นเชิง
ไฟล์ที่ถูกละเว้นเหล่านี้อาจแตกต่างกันไปตามสถานการณ์และส่วนใหญ่เป็นไฟล์ที่สร้างโดยเครื่องหรือสร้างสิ่งประดิษฐ์ นี่คือแนวทางปฏิบัติทั่วไป คุณอาจละเลยไฟล์อื่น ๆ ตามความต้องการของคุณเอง ตัวอย่างบางส่วนของไฟล์เหล่านี้ ได้แก่ :
- รหัสที่คอมไพล์:ไฟล์เหล่านี้มักมีนามสกุล. class, .pyc, .ccp เป็นต้น
- ไฟล์ระบบที่ซ่อนอยู่: ไฟล์เหล่านี้เป็นไฟล์ที่ระบบใช้สำหรับการดำเนินการ แต่ถูกซ่อนจากมุมมองธรรมดาเช่น DS_Store หรือ Thumbs.db เป็นต้น
- สร้างไดเร็กทอรีเอาต์พุต:ส่วนใหญ่เป็นไดเร็กทอรีของ / bin, / out ฯลฯ
- แคชอ้างอิง:ไฟล์เหล่านี้อาจเป็นเนื้อหาของโมดูล / node หรือ / package
- ไฟล์คอนฟิกูเรชัน IDE: เป็นไฟล์กำหนดค่าซึ่งส่วนใหญ่สร้างหรือจัดการโดยซอฟต์แวร์ IDE ของคุณ
- ไฟล์ที่สร้างขณะรันไทม์:มีบางโปรแกรมที่สร้างไฟล์ในขณะรันไทม์ หากมีการเรียกใช้โค้ดดังกล่าวไฟล์บางไฟล์อาจถูกสร้างขึ้นในขณะทำงานในโฟลเดอร์การทำงานของคุณและคุณอาจละเว้นใน Git
ไฟล์ใดก็ตามที่คุณต้องการละเว้นจะถูกติดตามในไฟล์พิเศษชื่อ. gitignore ซึ่งส่วนใหญ่จะตรวจสอบในรูทของที่เก็บที่ใช้งานได้ของคุณ ตามเอกสารอย่างเป็นทางการของ GitHub ในหัวข้อนี้ไม่มีคำสั่ง gitignore ที่เฉพาะเจาะจง แต่คุณต้องแก้ไขไฟล์ด้วยตนเองที่คุณต้องการละเว้น ไฟล์. gitignore มีรูปแบบที่จับคู่กับชื่อไฟล์ในที่เก็บการทำงานของคุณและใช้เพื่อช่วยในการพิจารณาว่าไฟล์เฉพาะควรถูกละเว้นหรือไม่
อะไรทำให้. gitignore ไม่ทำงาน?
คุณลักษณะ. gitignore อาจทำงานได้อย่างสมบูรณ์ แต่คุณอาจไม่ได้กำหนดค่าอย่างถูกต้อง ในการสำรวจทั้งหมดของเราเราได้ข้อสรุปว่าโมดูลใช้งานได้จริง สาเหตุที่ผู้เขียนโค้ดไม่สามารถใช้คุณลักษณะนี้ได้ส่วนใหญ่เป็นเพราะพวกเขาไม่ได้กำหนดค่าไฟล์อย่างถูกต้องหรือมีเงื่อนไขบางประการที่ไม่ตรงตามรหัสที่ใช้อยู่
นี่คือวิธีแก้ปัญหาบางส่วนที่อาจเหมาะกับคุณ แต่ละวิธีอาจใช้ไม่ได้ในกรณีของคุณดังนั้นโปรดเปลี่ยนไปใช้วิธีถัดไปหากไม่ตรงตามเงื่อนไขเริ่มต้น
โซลูชันที่ 1: การตรวจสอบไฟล์. gitignore
มีกรณีที่น่าสนใจเกิดขึ้นเมื่อเราเห็นว่าไฟล์. gitignore ถูกสร้างขึ้นในรูปแบบที่ไม่ถูกต้อง ปัญหานี้เกิดขึ้นเมื่อผู้ใช้สร้างไฟล์โดยใช้แอปพลิเคชันเริ่มต้นของ Notepad ใน Windows OS ปรากฎว่า Notepad เขียนไฟล์ใน Unicode แทนรูปแบบ ANSI ในวิธีนี้เราจะบันทึกการเปลี่ยนแปลงของ Notepad ในรูปแบบ. gitignore ที่ถูกต้องและดูว่าวิธีนี้ช่วยแก้ปัญหาได้หรือไม่
หมายเหตุ:คุณต้องลบนามสกุลของ. txt ออกจากไฟล์เมื่อคุณสร้างไฟล์ใหม่โดยใช้ Notepad
- หลังจากที่เขียนรหัสหรือการเปลี่ยนแปลงในเอกสารข้อความใหม่ใน Notepad คลิกที่ไฟล์และเลือกบันทึกเป็น
- ตอนนี้ในหน้าของการเข้ารหัสเลือกANSI ตอนนี้ลบนามสกุลไฟล์ของ. txt และบันทึกไฟล์ด้วยชื่อ ' .gitignore ' เลือกไดเร็กทอรีที่ถูกต้องและบันทึก
- ตอนนี้ไปที่ไดเร็กทอรีและตรวจสอบว่าไฟล์ถูกสร้างขึ้นหรือไม่ ตอนนี้ทดสอบอีกครั้งด้วย Git และดูว่าคุณลักษณะละเว้นทำงานตามที่คาดไว้หรือไม่
นักพัฒนาควรละเว้นจากการใช้ Notepad เริ่มต้นใน Windows คุณควรใช้แผ่นจดบันทึก 'โปรแกรมเมอร์' ที่เหมาะสมแทน ตัวอย่างบางส่วน ได้แก่ Notepad ++ เป็นต้นซึ่งคุณจะไม่มีปัญหาเช่นนี้
หมายเหตุ:หากไฟล์ของคุณถูกบันทึกในรูปแบบ UNICODE แล้วคุณควรบันทึกเนื้อหาในรูปแบบ ANSI อย่างถูกต้องหากคุณต้องการให้ Git ตรวจพบไฟล์ของคุณอย่างถูกต้อง
แนวทางที่ 2: ตรวจสอบไฟล์ที่คุณพยายามละเว้น
สภาพที่ .gitignore ทำงานก็คือว่าไฟล์ของคุณไม่ควรจะเป็นส่วนหนึ่งของพื้นที่เก็บข้อมูลเลย นี่เป็นส่วนที่สำคัญมากราวกับว่านี่เป็นเรื่องจริงไฟล์จะไม่ถูกละเว้นเนื่องจากมีการเพิ่มลงในที่เก็บแล้ว Git ไม่สามารถเพิกเฉยได้แม้ว่าคุณจะวางชื่อหรือกฎไว้ในไฟล์. gitignore ดังนั้นโดยพื้นฐานแล้ว Git จะละเว้นไฟล์ที่ไม่ได้ติดตามเท่านั้น
คุณควรดูโครงสร้างของคุณ (ที่เก็บ) และตรวจสอบให้แน่ใจว่าไม่ได้เพิ่มไฟล์ที่คุณกำลังพยายามละเว้นอยู่ในที่เก็บ หากเป็นเช่นนั้นคุณจะต้องลบไฟล์ออกจากที่เก็บและหลังจากทำการเปลี่ยนแปลงล่าสุดแล้วให้เพิ่มชื่อเป็น. gitignore (คุณยังสามารถคัดลอกเนื้อหาของไฟล์และหลังจากลบแล้วให้ทำซ้ำด้วยชื่ออื่น) .
โซลูชันที่ 3: การเพิ่มไฟล์ไปยัง Repository อีกครั้ง
หากคุณได้เพิ่มกฎลงใน. gitignore แล้ว แต่มีการเพิ่มไฟล์ที่คุณต้องการละเว้นไปแล้วเราสามารถเพิ่มไฟล์เข้าไปใหม่ได้ การเพิ่มหมายความว่าเราจะลบทุกอย่างออกจากดัชนีของ Git จากนั้นเพิ่มทุกอย่างกลับเข้าไปในที่เก็บของคุณอีกครั้ง เมื่อเราเพิ่มไฟล์อีกครั้งตั้งแต่เริ่มต้นกฎจะถูกจดจำไว้ว่าคุณได้เพิ่มใน. gitignore และเพิ่มเฉพาะไฟล์ที่ถูกต้องเท่านั้น
หมายเหตุ:คุณควรสำรองรหัสของคุณไว้ที่อื่นก่อนที่จะดำเนินการแก้ไขปัญหานี้ การสำรองข้อมูลไว้ในกรณีนี้เป็นเรื่องดีเสมอ
- ดำเนินการคำสั่งต่อไปนี้ การดำเนินการนี้จะยกเลิกขั้นตอนและลบพา ธ ไปยังไฟล์ของคุณจากดัชนีคอมไพล์ในลักษณะวนซ้ำ
git rm -r - แคช
- หลังจากดำเนินการแล้วคุณควรดำเนินการคำสั่งต่อไปนี้ การดำเนินการนี้จะเพิ่มไฟล์ทั้งหมดของคุณกลับและเนื่องจาก. gitignore มีกฎจึงจะอัปเดตเฉพาะไฟล์ที่ถูกต้องเท่านั้น
คอมไพล์เพิ่ม
- ตอนนี้เราจะส่งไฟล์ทั้งหมดของคุณกลับเข้าสู่ดัชนีโดยใช้รหัสด้านล่าง:
คอมมิต -m ".gitignore ใช้งานได้แล้ว"
ตอนนี้ตรวจสอบไฟล์ของคุณและดูว่าปัญหาได้รับการแก้ไขหรือไม่และคุณสามารถใช้. gitignore ได้อีกครั้งโดยไม่มีปัญหาใด ๆ