ดูภาพด้านล่าง ไฟล์. gitignore ของฉันควรละเว้นไฟล์ทั้งหมดใน src / dist แต่ไม่ใช่ไฟล์.
คำตอบ:
.gitignore
ละเว้นเฉพาะไฟล์ที่ยังไม่ได้เป็นส่วนหนึ่งของที่เก็บ หากคุณgit add
แก้ไขบางไฟล์แล้วการเปลี่ยนแปลงจะยังคงถูกติดตาม หากต้องการลบไฟล์เหล่านั้นออกจากที่เก็บของคุณ (แต่ไม่ใช่จากระบบไฟล์ของคุณ) ให้ใช้ไฟล์git rm --cached
เหล่านั้น
.gitignore
มั่นใจไฟล์ว่าไฟล์ที่ไม่ได้ติดตามโดยGit
ยังคงไม่ได้ติดตาม
เพียงแค่เพิ่มโฟลเดอร์ / ไฟล์ไปยัง.gitignore
ไฟล์จะไม่ untrack พวกเขา - Git
พวกเขาจะยังคงติดตามโดย
ในการยกเลิกการติดตามไฟล์จำเป็นต้องลบไฟล์ที่ติดตามที่อยู่ใน.gitignore
ไฟล์ออกจากที่เก็บ จากนั้นเพิ่มอีกครั้งและยืนยันการเปลี่ยนแปลงของคุณ
วิธีที่ง่ายและละเอียดที่สุดในการดำเนินการนี้คือการลบและแคชไฟล์ทั้งหมดในที่เก็บจากนั้นเพิ่มกลับทั้งหมด โฟลเดอร์ / ไฟล์ทั้งหมดที่อยู่ใน.gitignore
ไฟล์จะไม่ถูกติดตาม จากโฟลเดอร์บนสุดในที่เก็บให้รันคำสั่งต่อไปนี้:
git rm -r --cached .
git add .
จากนั้นทำการเปลี่ยนแปลงของคุณ:
git commit -m "Untrack files in .gitignore"
โปรดทราบว่าการคอมมิตก่อนหน้านี้กับไฟล์ที่ไม่ต้องการจะยังคงอยู่ในประวัติการคอมมิต เมื่อกดไปที่ GitHub โปรดระวังประวัติการคอมมิตที่อาจมี.env
หรือclient_secret.json
ไฟล์
แนวทางปฏิบัติที่ดีที่สุดคือสร้างไฟล์. gitignore และเติมข้อมูลด้วยโฟลเดอร์ / ไฟล์ที่คุณไม่ต้องการติดตามเมื่อเริ่มโครงการ อย่างไรก็ตามบ่อยครั้งที่จำเป็นต้องเพิ่มลงใน.gitignore
ไฟล์หลังจากที่ตระหนักว่ากำลังติดตามและจัดเก็บไฟล์ที่ไม่ต้องการ
git rm -r --cached .
ย้อนกลับไปเปลี่ยนแปลงทั้งหมดที่ยังใช้งานได้อีกครั้งเพิ่มไฟล์ทั้งหมดที่ไม่ควรได้รับการยกเว้นกับ.gitignore
คุณสามารถใช้สิ่งนี้
git rm -r --cached ./node_modules
หากคุณต้องการละเว้น node_modules ตัวอย่างเช่น
gitignore ละเว้นเฉพาะไฟล์ที่ไม่ได้ติดตาม ไฟล์ของคุณถูกทำเครื่องหมายว่ามีการแก้ไขซึ่งหมายความว่าไฟล์เหล่านั้นมีความมุ่งมั่นและอดีตและตอนนี้ถูกติดตามโดย git
หากต้องการเพิกเฉยคุณต้องลบออกgit rm
กระทำการแล้วเพิกเฉย
ดูสิ่งนี้: .gitignore ไม่ทำงาน และโดยเฉพาะข้อสังเกตจาก ADTC:
ตรวจสอบว่าไฟล์. gitignore ของคุณใช้การเข้ารหัส ANSI หรือ UTF-8 หากใช้อย่างอื่นเช่น Unicode BOM อาจเป็นไปได้ว่า Git ไม่สามารถอ่านไฟล์ได้ - ADTC 14 ธ.ค. 60 เวลา 12:39 น
ก่อนอื่นให้ลบไฟล์ index.lock ออกจาก git repo ของคุณ
rm -f .git/index.lock
แล้วเพิ่ม. gitignore
git add .gitignore
เป็นการดีกว่าที่จะสร้างไฟล์. gitignore ในการเริ่มต้นและกล่าวถึงไฟล์ที่เราต้องการละเว้น หากคุณต้องการละเว้นบางไฟล์ให้ดำเนินการคอมไพล์rm -r --cached