ฉันเคยเห็นคำถามคล้าย ๆ กัน ( 1 , 2และ3 ) แต่ฉันไม่ได้รับคำตอบที่เหมาะสมจากพวกเขา
ฉันต้องละเว้นไฟล์ทั้งหมดในโฟลเดอร์ใดโฟลเดอร์หนึ่งยกเว้นไฟล์บางประเภท โฟลเดอร์เป็นไดเร็กทอรีย่อยสำหรับรูทพา ธ Resources
ผมขอตั้งชื่อโฟลเดอร์ เนื่องจากฉันไม่ต้องการทำให้สิ่งต่างๆซับซ้อนขอให้ฉันละเว้นไฟล์ในโฟลเดอร์ทั้งหมดที่มีชื่อResources
ไม่ว่าจะอยู่ที่ใด
นี่เป็นวิธีแก้ปัญหาที่พบบ่อยที่สุด (ในคำถามที่ซ้ำกันทั้งหมด)
# Ignore everything
*
# Don't ignore directories, so we can recurse into them
!*/
# Don't ignore .gitignore
!.gitignore
# Now exclude our type
!*.foo
ปัญหาในการแก้ปัญหานี้คือหยุดติดตามไฟล์ที่เพิ่มใหม่ (เนื่องจาก*
ละเว้นไฟล์ทั้งหมด) ฉันไม่ต้องการยกเว้นไฟล์แต่ละไฟล์ทุกประเภท ฉันต้องการพฤติกรรมปกติที่หากมีการเพิ่มไฟล์ใหม่จะgit status
แสดงมัน
ในที่สุดผมก็มีวิธีการแก้ปัญหาที่นี่ วิธีแก้ไขคือเพิ่ม.gitignore
ไฟล์อื่นในResources
โฟลเดอร์ ทำงานได้อย่างถูกต้อง
ฉันสามารถบรรลุสิ่งเดียวกันด้วยไฟล์ละเว้นเดียวได้หรือไม่? ฉันพบว่ามีไฟล์ละเว้นจำนวนมากในไดเร็กทอรีที่แตกต่างกันเล็กน้อย
นี่คือสิ่งที่ฉันพยายามจะบรรลุ:
# Ignore everything under Resources folder, not elsewhere
Resources
# Don't ignore directories, so we can recurse into them
!*Resources/
# Now exclude our type
!*.foo
แต่สิ่งนี้ให้ผลลัพธ์ตรงกันข้าม มันละเว้น*.foo
ประเภทและติดตามไฟล์อื่น ๆ
DirectoryName1/** DirectoryName1/**/*
สำหรับแต่ละคน Firs ลบไดเรกทอรี แต่คุณต้องใช้ครั้งที่สองเพื่อลบไฟล์ทุกประเภท