Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

Gitignore ไม่ทำงาน? คู่มือช่วยเหลือ

ชื่อเรื่องบอกว่ามันทั้งหมด มีหลายกรณีที่คุณอาจกำลังแก้ไขปัญหาไฟล์ .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 ลบ . –cached แฟล็กระบุว่าจะถูกลบออกจากดัชนีแต่ยังคงอยู่ในไดเร็กทอรีท้องถิ่น เป็นการลบแบบเรียกซ้ำหากกำหนดเส้นทางไดเรกทอรีและ f บังคับให้มัน หากคุณกำลังทำงานกับไฟล์เพียงไฟล์และยังต้องการเก็บไว้ในเครื่องของคุณ:

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 จากนั้นคุณสามารถเพิ่ม to gitignore เพื่อให้ไฟล์ของคุณถูกละเว้น

หมายเหตุสุดท้าย :อาจมีกรณีอื่นๆ ที่การรีเซ็ต git อาจมีประโยชน์ ฉันเขียนบทความเกี่ยวกับการรีเซ็ต git ซึ่งจะเป็นประโยชน์ในกรณีเหล่านี้ ดังนั้นการรีเซ็ต Git ก็เหมือนกับการเลิกทำ ย้อนเวลากลับไป ดังนั้นในบางกรณีนั่นคือสิ่งที่คุณต้องการ

คุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Git หรือไม่? อ่านคู่มือวิธีการเรียนรู้ Git ของเรา ในคู่มือนี้ คุณจะพบคำแนะนำจากผู้เชี่ยวชาญเกี่ยวกับการเรียนรู้ Git และคำแนะนำเกี่ยวกับแหล่งข้อมูลการเรียนรู้ชั้นนำ