เป็นเพราะบันทึก Git ที่กระทำ (ไม่ใช่สาขาหรือแท็กหนึ่งรายการที่แสดงใน Hash SHA-1) ควรตรวจสอบข้อมูลสำหรับแต่ละ submodule หากคุณเปลี่ยนบางสิ่งใน submodule dir Git จะตรวจจับและกระตุ้นให้คุณยอมรับการเปลี่ยนแปลงเหล่านั้นใน repoisitory ระดับบนสุด
ทำงานgit diff
ในพื้นที่เก็บข้อมูลระดับบนสุดเพื่อแสดงสิ่งที่ Git เปลี่ยนไป หากคุณได้ทำคอมมิชชันใน submodule แล้ว (เช่น "clean" ใน submodule) มันจะรายงานการเปลี่ยนแปลงแฮชของ submodule
$ git diff
diff --git a/src/repo b/src/repo
index b0c86e2..a893d84 160000
--- a/src/repo
+++ b/src/repo
@@ -1 +1 @@
-Subproject commit b0c86e28675c9591df51eedc928f991ca42f5fea
+Subproject commit a893d84d323cf411eadf19569d90779610b10280
มิฉะนั้นจะแสดง-dirty
การเปลี่ยนแปลงแฮชซึ่งคุณไม่สามารถจัดลำดับหรือกระทำในที่เก็บระดับบนสุด git status
ยังอ้างว่า submodule มีเนื้อหาที่ไม่ได้ติดตาม / แก้ไข
$ git diff
diff --git a/src/repo b/src/repo
--- a/src/repo
+++ b/src/repo
@@ -1 +1 @@
-Subproject commit b0c86e28675c9591df51eedc928f991ca42f5fea
+Subproject commit b0c86e28675c9591df51eedc928f991ca42f5fea-dirty
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
(commit or discard the untracked or modified content in submodules)
modified: src/repo (untracked content)
no changes added to commit (use "git add" and/or "git commit -a")
ในการอัปเดตบันทึกการกระทำที่ควรตรวจสอบสำหรับ submodule คุณต้องคอมไพล์ยอมรับ submodule นอกเหนือจากการยอมรับการเปลี่ยนแปลงใน submodule:
git add src/repo
wiki
เป็น submodule ในไดเรกทอรีวิกิพีเดีย ฉันไม่ต้องการให้การเปลี่ยนแปลงใด ๆ ของฉันจากwiki
(เช่นไดเรกทอรีwiki ) แสดงในที่เก็บหลัก / รหัสของฉัน ฉันควรเพิ่ม.gitmodules
เส้นทางใน.gitignore
ที่เก็บหลักหรือไม่ ฉันจะไปเกี่ยวกับมันได้อย่างไร