2010-12-01 15 views
9

के साथ पनडुब्बियों को स्थानांतरित करना क्या आपके सुपरप्रोजेक्ट के भीतर पहले उन्हें हटाने और उन्हें फिर से जोड़ने के बिना सबमिड्यूल को स्थानांतरित करने का कोई तरीका है?गिट

+0

यह 2010 में पूछा गया था। आपके द्वारा लिंक किया गया प्रश्न 2011 –

+0

से है, लेकिन दूसरा सवाल भी "लोकप्रिय" है (उदाहरण के लिए इसमें तीन बार विचार हैं; यह और इसके उत्तरों ने कई और हासिल किए हैं वोट-यहां तक ​​कि स्वीकार किए गए, समान उत्तर)। वैसे भी, इससे कोई फर्क नहीं पड़ता क्योंकि किसी भी करीबी वोट बहुत पहले समाप्त हो गए थे। –

+0

इस प्रश्न को यहां भी पूछा गया था: http://stackoverflow.com/questions/4604486/how-do-i-move-an-existing-git-submodule-within-a-git-repository – StevieB

उत्तर

5

यह कैसे आप एक submodule को दूर करने के समान है (How do I remove a submodule? देखें):

  • संपादित .gitmodules और उचित रूप से submodule के मार्ग बदलने के लिए, और git add .gitmodules
  • साथ सूचकांक में रख यदि आवश्यक हो, बनाने mkdir -p new/parent
  • ले जाएँ नई निर्देशिका में पुराने से सभी सामग्री: submodule के नए स्थान की पेरेंट निर्देशिका mv -vi old/parent/submodule new/parent/submodule
  • के साथ पुराने निर्देशिका निकालें

मेरे लिए यह ऐसा लगता है कि बाद में:

# On branch master 
# Changes to be committed: 
# (use "git reset HEAD <file>..." to unstage) 
# 
#  modified: .gitmodules 
#  renamed: old/parent/submodule -> new/parent/submodule 
# 
  • अंत में परिवर्तन हो।
+4

इच्छा है कि एक गिट कमांड था यह सब आपके लिए हो सकता है;) –

+1

ये निर्देश काम नहीं करते हैं। – awolf

+3

मेरे लिए भी काम नहीं किया; 'नया/अभिभावक/सबमिशन' हटाए गए के रूप में एक अनचाहे फ़ाइल, 'पुराना/अभिभावक/सबमिशन' के रूप में दिखाया गया है। मैंने सबमिशन – wutz

1

मुझे नहीं लगता कि अभी के लिए है।

एक शिक्षण "git mv" के लिए एक patch in the making नहीं है कैसे, submodules चलती .gitmodules फ़ाइल को अपडेट करने के तरीके सहित संभालने के लिए।
लेकिन यह अभी तक नहीं है।
बस switching a remote repo for an existing submodule is simpler, लेकिन आप जो चाहते हैं उसे नहीं।