ฉันลองคำตอบทั้งหมดตามที่ระบุไว้ด้านบน แต่ไม่มีใครทำงานให้ฉันได้ หลังจากอ่านเอกสาร gitignore ( ที่นี่ ) ฉันพบว่าหากคุณแยกโฟลเดอร์ก่อนที่ชื่อไฟล์ในโฟลเดอร์ย่อยจะไม่ถูกทำดัชนี ดังนั้นหากคุณใช้เครื่องหมายอัศเจรีย์ในภายหลังเพื่อรวมไฟล์จะไม่พบในดัชนีและไม่รวมอยู่ในไคลเอนต์ git ของคุณ
นั่นคือวิธีในการค้นหาวิธีแก้ปัญหา ฉันเริ่มต้นด้วยการเพิ่มข้อยกเว้นสำหรับโฟลเดอร์ย่อยทั้งหมดในแผนผังโฟลเดอร์ของฉันเพื่อให้ทำงานได้ซึ่งเป็นงานที่แย่มาก หลังจากนั้นฉันก็สามารถกะทัดรัดรายละเอียดการกำหนดค่าไปที่การตั้งค่าด้านล่างซึ่งตรงกันข้ามกับเอกสารประกอบเล็กน้อย ..
การทำงาน. gignignore:
# Ignore the 'Pro' folder, except for the '3rdparty' subfolder
/Pro/*
!Pro/3rdparty/
# Ignore the '3rdparty' folder, except for the 'domain' subfolder
/Pro/3rdparty/*
!Pro/3rdparty/domain/
# Ignore the 'domain' folder, except for the 'modulename' subfolder
Pro/3rdparty/domain/*
!Pro/3rdparty/domain/modulename/
เป็นผลให้ฉันเห็นในไคลเอนต์ git ของฉันว่ามีเพียงสองไฟล์ภายในโฟลเดอร์ Pro / 3rdparty / domain / modulename / กำลังถูก staged สำหรับการกระทำต่อไปและนั่นคือสิ่งที่ฉันกำลังมองหา
และถ้าคุณต้องการรายการที่อนุญาตพิเศษในโฟลเดอร์ย่อยหลาย ๆ โฟลเดอร์ในกลุ่มเดียวกันให้จัดกลุ่มบรรทัดเครื่องหมายอัศเจรีย์ด้านล่างของคำสั่งแยกเช่นนี้:
# Ignore the 'Pro' folder, except for the '3rdparty' subfolder
/Pro/*
!Pro/3rdparty/
# Ignore the '3rdparty' folder, except for the 'domain' & 'hosting' subfolders
/Pro/3rdparty/*
!Pro/3rdparty/domain/
!Pro/3rdparty/hosting/
# Ignore the 'domain' folder, except for the 'modulename' subfolder
Pro/3rdparty/domain/*
!Pro/3rdparty/domain/modulename/
# Ignore the 'hosting' folder, except for the 'modulename' subfolder
Pro/3rdparty/hosting/*
!Pro/3rdparty/hosting/modulename/
มิฉะนั้นมันจะไม่ทำงานตามที่คาดไว้