ชื่อเรื่องบอกว่ามันทั้งหมด มีหลายกรณีที่คุณอาจกำลังแก้ไขปัญหาไฟล์ .gitignore เนื่องจากไม่ทำงานตามที่คาดไว้
ไฟล์ .gitignore มีบทบาทสำคัญในที่เก็บ Git หากไฟล์ .gitignore ของคุณใช้งานไม่ได้ คุณอาจติดตามการเปลี่ยนแปลงที่ควรเก็บไว้เป็นส่วนตัวโดยไม่ได้ตั้งใจ การเปลี่ยนแปลงเหล่านี้บางส่วนอาจมีข้อมูลที่ละเอียดอ่อน เช่น คีย์ API
สาเหตุสองประการของไฟล์ .gitignore ที่เสียหายคือ:
- การเพิ่มไฟล์ใน .gitignore หลังจากที่คุณได้คอมมิตแล้ว
- อ้างถึงชื่อไฟล์หรือเส้นทางที่ไม่ถูกต้องในไฟล์ .gitignore ของคุณ
เราจะหารือเกี่ยวกับปัญหาทั้งสองนี้ในบทแนะนำนี้และวิธีแก้ปัญหา
ไฟล์ .gitignore คืออะไร
ไฟล์ .gitignore มีรายการไฟล์ทั้งหมดที่คุณไม่ต้องการบันทึกลงในที่เก็บ Git ของคุณ ไฟล์นี้มักใช้เพื่อเก็บไฟล์คอนฟิกูเรชันและสภาพแวดล้อมภายนอกที่เก็บ ไฟล์เหล่านี้มักมีข้อมูลส่วนตัวและไม่ควรอยู่ในที่เก็บระยะไกล
ไฟล์นี้ควรตั้งชื่อและบันทึกอย่างชัดเจนเป็น .gitignore . ในไฟล์ข้อความธรรมดานี้ คุณจะต้องเพิ่มพาธของไฟล์หรือไดเร็กทอรีที่คุณต้องการให้ Git ไม่ติดตาม สิ่งที่เพิ่มลงในไฟล์ Git นี้จะละเว้นและไม่เพิ่มลงในโครงสร้างการติดตาม
นี่คือตัวอย่างเนื้อหาไฟล์ gitignore:
node_modules/ .env
ในไฟล์นี้ เรากำลังบอกให้ Git ละเว้นไฟล์ใดไฟล์หนึ่ง นี่คือไฟล์ .env ซึ่งมักจะมีคีย์ API เรายังละเลยโฟลเดอร์ node_module ที่มีแพ็คเกจ NPM ที่ติดตั้งไว้ทั้งหมดด้วย
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
ไฟล์ทั่วไปที่ควรละเว้น ได้แก่ ไฟล์ .DS_Store ไฟล์ .env และไฟล์ปรับแต่ง ไฟล์ .DS_Store มักพบในระบบปฏิบัติการ macOS และไม่จำเป็นต้องเป็นส่วนหนึ่งของที่เก็บ Git
ไฟล์ .gitignore ส่วนใหญ่อยู่ในไดเร็กทอรีรากของที่เก็บ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับไฟล์ .gitignore โปรดดูคู่มือไฟล์ .gitignore สำหรับผู้เริ่มต้น
สถานการณ์ A:การเพิ่มไฟล์ไปยัง .gitignore หลังจากตกลงแล้ว
เราอาจบ่นว่าเหตุใด gitignore จึงไม่ทำงานหลังจากที่เราส่งไฟล์ที่ควรจะเพิกเฉยโดยไม่ได้ตั้งใจ ดังนั้นเราจึงเพิ่มลงใน gitignore หลังจากนั้นและบ่นว่า Git ยังคงติดตามอยู่
เหตุผลก็คือเราต้องเพิ่มไฟล์/โฟลเดอร์ก่อนที่จะส่ง Git กำลังติดตามพวกมันอยู่ ดังนั้นหากต้องการเลิกติดตามพวกมันอีกครั้ง เราจะต้องทำตามคำสั่งต่อไปนี้:
git rm -rf --cached <path>
ส่วนแรก git rm ลบ
git rm --cached <file>
ด้วยเหตุนี้ คุณกำลังระบุ Git ว่าคุณไม่ต้องการติดตามไฟล์/โฟลเดอร์ที่มีให้อีกต่อไป ลองอีกครั้งแล้ว gitignore ของคุณจะทำงานได้ตามปกติ . เพียงจำไว้ว่าต้องระบุไฟล์/โฟลเดอร์เพื่อให้ gitignore ทำงานได้!
สถานการณ์ B:Gitignore สร้างก่อนยอมรับและยังไม่ติดตามไฟล์
หาก .gitignore ยังคงไม่ติดตามไฟล์ วิธีแก้ปัญหาอาจง่ายพอๆ กับการตรวจสอบว่าคุณอ้างถึงไฟล์ที่ถูกต้อง คุณต้องระบุให้แน่ชัดว่าไฟล์ใดที่คุณต้องการให้ไฟล์ .gitignore ละเว้น คุณต้องแก้ไขการสะกดผิดหรือชื่อเส้นทางที่ไม่ถูกต้องด้วยตนเอง
ลองพิจารณาตัวอย่างนี้:
*.pyyc
ไฟล์ .gitignore จะบอก Git ว่าไฟล์ใดควรละเว้น ซึ่งในกรณีนี้คือไฟล์ .pyyc ทั้งหมด แต่ความตั้งใจของเราคือเพิกเฉยต่อไฟล์ .pyc ไฟล์ .pyc เป็นไฟล์กำหนดค่าสำหรับโปรแกรม Python ไฟล์ .gitignore ของเราไม่ทราบเรื่องนี้ เราจึงต้องแก้ไขกฎของเรา:
*.pyc
ที่เก็บของเราจะละเว้นไฟล์ .pyc ทั้งหมด
โปรดตรวจสอบด้วยว่าคุณไม่มีช่องว่างต่อท้ายที่จุดเริ่มต้นหรือจุดสิ้นสุดของการประกาศไฟล์/โฟลเดอร์
บทสรุป
เราได้พูดคุยถึงสถานการณ์สองสามสถานการณ์และความเป็นไปได้ของโซลูชันสำหรับกรณีต่างๆ เมื่อ gitignore ไม่ทำงานตามที่คาดไว้ ประเด็นหลักคือ คุณต้องเข้าใจว่าไฟล์/ไดเร็กทอรีอยู่ที่ใด เพื่อให้คุณสามารถเพิ่มเส้นทางที่ถูกต้องได้
คุณต้องตระหนักว่าคุณควรเพิ่มไฟล์ใดๆ ที่จำเป็นต้องละเว้นทันทีที่คุณสร้างขึ้น หากคุณบังเอิญทำผิดพลาด โชคดีที่เรามี git rm -rf –cached
หมายเหตุสุดท้าย :อาจมีกรณีอื่นๆ ที่การรีเซ็ต git อาจมีประโยชน์ ฉันเขียนบทความเกี่ยวกับการรีเซ็ต git ซึ่งจะเป็นประโยชน์ในกรณีเหล่านี้ ดังนั้นการรีเซ็ต Git ก็เหมือนกับการเลิกทำ ย้อนเวลากลับไป ดังนั้นในบางกรณีนั่นคือสิ่งที่คุณต้องการ
คุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Git หรือไม่? อ่านคู่มือวิธีการเรียนรู้ Git ของเรา ในคู่มือนี้ คุณจะพบคำแนะนำจากผู้เชี่ยวชาญเกี่ยวกับการเรียนรู้ Git และคำแนะนำเกี่ยวกับแหล่งข้อมูลการเรียนรู้ชั้นนำ