ตามที่ระบุไว้ในบล็อกโพสต์มาร์ค Longair ของGit submodules อธิบาย ,
  รุ่น 1.7.0 และใหม่กว่าของ git มีการเปลี่ยนแปลงที่น่ารำคาญในพฤติกรรมของ submodule git 
  ตอนนี้ Submodules ถูกมองว่าสกปรกหากมีไฟล์ที่แก้ไขหรือไฟล์ที่ไม่ได้ติดตามซึ่งก่อนหน้านี้มันจะเป็นเพียงกรณีที่ HEAD ใน submodule ชี้ไปที่การกระทำผิด
  
  ความหมายของเครื่องหมายบวก ( +) ในผลลัพธ์ของ submodule git มีการเปลี่ยนแปลงและเป็นครั้งแรกที่คุณเจอสิ่งนี้จะใช้เวลาสักครู่ในการคิดว่าเกิดอะไรขึ้นเช่นดูจาก changelogs หรือใช้ git bisect บน git .git เพื่อค้นหาการเปลี่ยนแปลง ผู้ใช้จะแนะนำสัญลักษณ์ที่แตกต่างกันสำหรับ“ ในเวอร์ชั่นที่ระบุ แต่สกปรก”
คุณสามารถแก้ไขได้โดย:
- ไม่ว่าจะกระทำหรือเลิกทำการเปลี่ยนแปลง / วิวัฒนาการในแต่ละ submodules ของคุณก่อนที่จะกลับไปที่ repo หลัก (ที่ diff ไม่ควรรายงานไฟล์ "สกปรก" อีกต่อไป) หากต้องการยกเลิกการเปลี่ยนแปลงทั้งหมดของ submodule ของคุณเพียงแค่- cdเข้าไปในไดเรกทอรีรากของ submodule ของคุณและทำ- git checkout .
 -  ความคิดเห็นdotnetCarpenterที่คุณสามารถทำได้:- git submodule foreach --recursive git checkout .
 
- หรือเพิ่ม- --ignore-submodulesในของคุณ- git diffเพื่อเพิกเฉยต่อรายการย่อย "สกปรก" เหล่านั้นชั่วคราว
 
ใหม่ใน Git เวอร์ชั่น 1.7.2
ในฐานะที่เป็นโนม ความคิดเห็นด้านล่าง , คำถามนี้กล่าวว่าตั้งแต่รุ่นคอมไพล์ 1.7.2 คุณสามารถละเลย submodules สกปรกด้วย:
git status --ignore-submodules=dirty
               
              
git commit -aโดยไม่ต้องกังวลกับการเพิ่มการเปลี่ยนแปลงเหล่านี้ แม้ว่าพวกเขากำลังทำเครื่องหมายไว้Mข้างหน้า แต่พวกเขาจะไม่จบลงด้วยความมุ่งมั่นของคุณ