2012-08-31 12 views
15

से हटाया नहीं जा सकता है, मैं पहले से मौजूद एक सबमिशन जोड़ने की कोशिश कर रहा हूं (विभिन्न गिट रिमोट रिपोजिटरी)। जैसा कि मैंने सही तरीके से इसे करने से पहले खोज नहीं की थी, मुझे लगता है कि मैंने अपनी भंडार को गड़बड़ कर दिया है और मुझे इसे फिर से ठीक करने में कुछ मदद चाहिए।एक सबमिशन जोड़ें जिसे इंडेक्स

मैंने पहले से ही सबमिट किए जाने वाले submodules के बारे में .gitmodules और .git/config से सभी प्रासंगिक खंडों को हटा दिया है। मैंने यह भी सत्यापित किया है कि मेरी .git/निर्देशिका के अंदर मॉड्यूल निर्देशिका नहीं है।

हालांकि, जब मैं कमांड git rm --cached path_to_submodule चलाने के लिए, निम्न संदेश प्रदर्शित होता है:

 
fatal: pathspec 'path_to_submodule' did not match any files 

पिछला आदेश विफल रहता है के रूप में, जब मैं आदेश git submodule add [email protected]:repo.git चल नई परिभाषा के साथ फिर से वही submodule जोड़ने की कोशिश, , इस दिखाया गया संदेश है:

 
'repo' already exists in the index 
+0

मैं इंडेक्स में पहले से मौजूद फाइल के समान नाम के साथ एक सबमिशन जोड़ने की कोशिश कर रहा था। –

उत्तर

32

एक ही रास्ता है, तो 'रेपो' अभी भी सूचकांक में मौजूद है कि संदेश ('repo' already exists in the index) प्रदर्शित किया जा सकता है (this chapter on submodule देखें):

$ rm -Rf rack/ 
$ git submodule add [email protected]:schacon/rack.git rack 
'rack' already exists in the index 

You have to unstage the rack directory first. Then you can add the submodule: 

$ git rm -r rack 
$ git submodule add [email protected]:schacon/rack.git rack 

यहां तक ​​कि अगर 'rack' एक submodule नहीं है, यदि वह मौजूद है, यह इसी नाम के एक submodule की घोषणा रोका जा सके।

1

हो सकता है, जब त्रुटि, submodule के फ़ोल्डर के मैनुअल हटाने, या कुछ और, के साथ विलय Hallileo धूमकेतु

  1. की तरह फ़ाइल .gitmodules में - (submodule नाम के साथ पूरे अनुभाग) submodule के लिए लिंक को नष्ट

  2. फ़ाइल .git\config में - submodule के लिए लिंक हटा सकते हैं पिछले चरण में के रूप में

  3. फ़ोल्डर .git\modules में - आर के समान रिश्तेदार पथ के साथ फ़ोल्डर हटाना

    $ git submodule add -f --name <name> <git://path_1.git> <path_2>

    जहां: "समस्या" मॉड्यूल

  4. सुनिश्चित करने, submodule की है कि फ़ोल्डर नहीं है की elative पथ अब

  5. तो

    मौजूद नाम - submodule के नाम के रूप में यू चाहते हैं, तो हो सकता है अपने repo नाम के बराबर हो; - स्रोत स्रोत रेपो (यानी - github, आदि) के लिए पथ, - फ़ोल्डर के सापेक्ष पथ

    इससे आपको पथ के भीतर या नाम के साथ सबमिशन जोड़ने की सुविधा मिलती है जो अभी भी इंडेक्स में मौजूद है, लेकिन स्वाभाविक रूप से जिंदा नहीं है।

मैं किसी भी विधि सूचकांक से इन मृत लिंक को हटाने के लिए नहीं मिला था, लेकिन जब

1

मजबूर हैं उत्पादन एक नया submodule जोड़ने है:

'FolderName' already exists in the index 

टिप अगले आदेशों

git ls-files --stage 

आउटपुट कुछ ऐसा ही होगा:

160000 d023657a21c1bf05d0eeaac6218eb5cca8520d16 0 FolderName 

फिर, फ़ोल्डर सूचकांक टिप दूर करने के लिए:

git rm -r --cached FolderName 

कोशिश फिर से submodule

+0

धन्यवाद जो मेरे लिए काम करता है –

0

'submodules/uasdk-clib' पहले से ही सूचकांक में मौजूद है

Git rm जोड़ने - आर - कैश किए गए submodules/uasdk-clib

गिट सबमिशन एड-बी चीन/रिलीज/16.8.0 -f एसएसएच: //[email protected] submodules/uasdk-clib

संबंधित मुद्दे