जैसा कि मार्क लॉन्गेयर के ब्लॉग पोस्ट Git Submodules में बताया गया है ,
संस्करण 1.7.0 और बाद में git में git सबमॉड्यूल के व्यवहार में एक कष्टप्रद परिवर्तन होता है।
सबमोड्यूल्स को अब गंदा माना जाता है यदि उनके पास कोई संशोधित फाइल या अनटैक की गई फाइलें हैं , जबकि पहले यह केवल मामला होगा यदि सबमॉड्यूल में HEAD गलत प्रतिबद्ध की ओर इशारा करता है।
+
गिट सबमॉड्यूल के आउटपुट में प्लस साइन ( ) का अर्थ बदल गया है, और पहली बार जब आप इस पार आते हैं तो यह पता लगाने में थोड़ा समय लगता है कि क्या गलत हो रहा है, उदाहरण के लिए चैंज देखने के माध्यम से या गिट पर गिट बायक्ट का उपयोग करके परिवर्तन को खोजने के लिए .git। यह उपयोगकर्ताओं के लिए "निर्दिष्ट संस्करण पर एक अलग प्रतीक प्रस्तुत करने के लिए बहुत दयालु होता, लेकिन गंदा होता"।
आप इसे ठीक कर सकते हैं:
माता-पिता रेपो (जहां अब "गंदी" फ़ाइलों की रिपोर्ट नहीं करनी चाहिए) में वापस जाने से पहले, अपने प्रत्येक सबमॉड्यूल के भीतर परिवर्तन / विकास को कम या कम करना। अपने सबमॉडल में सभी परिवर्तनों को पूर्ववत करने के लिए अपने सबमॉडल cd
की रूट डायरेक्टरी में करें और करेंgit checkout .
dotnetCarpenter टिप्पणियाँ जो आप कर सकते हैं:git submodule foreach --recursive git checkout .
या अस्थायी रूप से उन "गंदे" सबमॉड्यूल को अनदेखा करने के --ignore-submodules
लिए अपने में जोड़ें git diff
।
Git संस्करण 1.7.2 में नया
के रूप में नोम नीचे टिप्पणी , इस सवाल का उल्लेख है कि, Git संस्करण 1.7.2 के बाद से, आप के साथ गंदा submodules अनदेखा कर सकते हैं:
git status --ignore-submodules=dirty
git commit -a
इन परिवर्तनों को जोड़ने की चिंता किए बिना निष्पादित कर सकते हैं। हालाँकि वेM
सामने वाले के साथ चिह्नित हैं , वे आपकी प्रतिबद्धता में समाप्त नहीं होंगे।