เหตุใด. gitignore จึงไม่เพิกเฉยต่อไฟล์ของฉัน


คำตอบ:


270

.gitignoreละเว้นเฉพาะไฟล์ที่ยังไม่ได้เป็นส่วนหนึ่งของที่เก็บ หากคุณgit addแก้ไขบางไฟล์แล้วการเปลี่ยนแปลงจะยังคงถูกติดตาม หากต้องการลบไฟล์เหล่านั้นออกจากที่เก็บของคุณ (แต่ไม่ใช่จากระบบไฟล์ของคุณ) ให้ใช้ไฟล์git rm --cachedเหล่านั้น


15
git rm - แคช file_name.ext wroks ดีสำหรับฉันในการอัปเดต gitignore สำหรับไฟล์เดียว ขอบคุณ.
sybozz

4
ฉันทำสิ่งนี้แล้ว แต่ GitHub ยังคงต้องการติดตามและเพิ่มเข้าไป
Netside

2
git rm -r - แคชโฟลเดอร์เพื่อลบแคชในโฟลเดอร์ซ้ำ
Pablo Pazos

การละเว้นไฟล์ไม่ได้ผลสำหรับฉัน แต่ฉันไม่สนใจโฟลเดอร์ dist อย่างที่ Pablo กล่าวถึงและมันก็ทำงานได้อย่างสวยงาม!
Rubbic

123

.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ไฟล์หลังจากที่ตระหนักว่ากำลังติดตามและจัดเก็บไฟล์ที่ไม่ต้องการ


ขอบคุณสำหรับคำตอบ สิ่งนี้ช่วยได้จริงๆ อย่าลืมผลักดัน repo ขึ้นไปที่คอมไพล์ด้วย
Chris Reed

หลังจากที่ใช้git rm -r --cached .ย้อนกลับไปเปลี่ยนแปลงทั้งหมดที่ยังใช้งานได้อีกครั้งเพิ่มไฟล์ทั้งหมดที่ไม่ควรได้รับการยกเว้นกับ.gitignore
Adam Hurwitz


10

gitignore ละเว้นเฉพาะไฟล์ที่ไม่ได้ติดตาม ไฟล์ของคุณถูกทำเครื่องหมายว่ามีการแก้ไขซึ่งหมายความว่าไฟล์เหล่านั้นมีความมุ่งมั่นและอดีตและตอนนี้ถูกติดตามโดย git

หากต้องการเพิกเฉยคุณต้องลบออกgit rmกระทำการแล้วเพิกเฉย


4

ดูสิ่งนี้: .gitignore ไม่ทำงาน และโดยเฉพาะข้อสังเกตจาก ADTC:

ตรวจสอบว่าไฟล์. gitignore ของคุณใช้การเข้ารหัส ANSI หรือ UTF-8 หากใช้อย่างอื่นเช่น Unicode BOM อาจเป็นไปได้ว่า Git ไม่สามารถอ่านไฟล์ได้ - ADTC 14 ธ.ค. 60 เวลา 12:39 น


0

ก่อนอื่นให้ลบไฟล์ index.lock ออกจาก git repo ของคุณ

rm -f .git/index.lock

แล้วเพิ่ม. gitignore

git add .gitignore

0

เป็นการดีกว่าที่จะสร้างไฟล์. gitignore ในการเริ่มต้นและกล่าวถึงไฟล์ที่เราต้องการละเว้น หากคุณต้องการละเว้นบางไฟล์ให้ดำเนินการคอมไพล์rm -r --cached

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.