ไม่คุณไม่จำเป็นต้องเพิ่มโมดูลย่อยของคุณ.gitignore
สิ่งที่ผู้ปกครองจะเห็นจากโมดูลย่อยของคุณคือgitlink ( รายการพิเศษmode 160000
)
นั่นหมายความว่าการเปลี่ยนแปลงใด ๆ ที่เกิดขึ้นโดยตรงในโมดูลย่อยจะต้องตามด้วยคอมมิตในไดเร็กทอรีหลัก
ด้วยวิธีนี้ไดเร็กทอรีพาเรนต์จะบันทึกการคอมมิตที่ถูกต้องสำหรับสถานะของโมดูลย่อย: คอมมิตนั้นคือ "gitlink" ที่กล่าวถึงข้างต้น
คุณสามารถอ่านเพิ่มเติมเกี่ยวกับนโยบายนั้นได้ใน " git submodule update (true nature of submodules) "
แนวคิดหลักที่อยู่เบื้องหลังโมดูลย่อยคือแนวทางที่อิงตามองค์ประกอบซึ่งคุณอ้างอิง repos อื่น ๆ ในการกระทำที่เฉพาะเจาะจง แต่ถ้าคุณเปลี่ยนแปลงสิ่งใดในโมดูลย่อยเหล่านั้นคุณต้องอัปเดตการอ้างอิงเหล่านั้นใน repo หลักด้วย
โปรดทราบว่าด้วย Git 2.13 (Q2 2017) ในขณะที่ไม่เพิกเฉยต่อ gitlink คุณยังสามารถเพิกเฉยต่อโมดูลย่อยด้วย:
git config submodule.<name>.active false
ดูเพิ่มเติมที่ " ละเว้นการคอมมิตใหม่สำหรับโมดูลย่อย git "
หมายเหตุ: ด้วย Git 2.15.x / 2.16 (Q1 2018) การละเว้นโมดูลย่อยจะแม่นยำกว่า
" git status --ignored --untracked
" ไม่ได้หยุดอยู่ที่โครงสร้างการทำงานของโปรเจ็กต์แยกต่างหากที่ฝังอยู่ในไดเร็กทอรีที่ละเว้นและไฟล์ที่แสดงในโปรเจ็กต์อื่นนั้นแทนที่จะแสดงไดเร็กทอรีของตัวเองว่าถูกละเว้น
ดูกระทำ fadb482 (25 ตุลาคม 2017) โดยโยฮันเน Schindelin (dscho
)
(ผสานโดยJunio C Hamano - gitster
-ในการกระทำ da7996a , 06 พ.ย. 2017)
status
: อย่าสับสนกับโมดูลย่อยในไดเร็กทอรีที่ยกเว้น
เราส่งexclude
แฟtreat_directory()
ล็กไปยังฟังก์ชันอย่างพิถีพิถันเพื่อให้สามารถระบุได้ว่าไฟล์ในไฟล์นั้นถูกยกเว้นแทนที่จะไม่ถูกติดตามเมื่อเรียกซ้ำ
แต่เรายังไม่ได้ปฏิบัติต่อโมดูลย่อยในลักษณะเดียวกัน
ด้วยเหตุนี้git status --ignored --untracked
ด้วยโมดูลย่อย
submodule
ใน gitignored tracked/
จะแสดงโมดูลย่อยในส่วน " Untracked files
" เช่น
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
tracked/submodule/
Ignored files:
(use "git add -f <file>..." to include in what will be committed)
tracked/submodule/initial.t
แต่เราต้องการให้มันแสดงโมดูลย่อยในส่วน " Ignored files
":
On branch master
Ignored files:
(use "git add -f <file>..." to include in what will be committed)
tracked/submodule/