दिलचस्प पोस्ट
एनपीए के जेपीए मैप का संग्रह arrayList.toArray () अधिक विशिष्ट प्रकार लौटाएं पैरामीटर वाला क्वेरी क्या है? JDBC और MySQL के साथ एक "संचार लिंक विफलता" सुलझाना क्या मैं अजगर में स्ट्रिंग बफ़र को किसी प्रकार की रीडायरेक्ट में रीडायरेक्ट कर सकता हूं? JavaScript फ़ंक्शन के लिए एक डिफ़ॉल्ट पैरामीटर मान सेट करें मैं सी # में HTML वर्णों को कैसे व्याख्या कर सकता हूँ? Data.frame में NAs (अनुपलब्ध मान) के साथ पंक्तियों को निकालें अजगर के रूप में पाइथन पासिंग सूची क्या MySQL के DESCRIBE के लिए एक SQLite समकक्ष है? बहुत कम आकार के बाद छवि की गुणवत्ता – जावा जावा में विभिन्न प्रारूपों के साथ स्ट्रिंग को पार्स करना सी + + हेडर ऑर्डर जीआईटी ट्री ऑब्जेक्ट का आंतरिक स्वरूप क्या है? मुझे ऑब्जेक्ट के बजाय एक संकेतक का उपयोग क्यों करना चाहिए?

एक git submodule के लिए दूरस्थ रिपॉजिटरी बदलना

मैंने इसमें एक सबूत के साथ एक git भंडार बनाया है मैं खुद को अपने दूरस्थ भंडार पथ को बदलने के लिए submodule को बताने में सक्षम हूं, लेकिन मुझे यकीन नहीं है कि कैसे पेर्रॉप रिपॉजिटरी को बताए कि कैसे सबमड्यूल के लिए दूरस्थ रिपॉज़िटरी पथ को बदलने के लिए।

मुझे आश्चर्य नहीं होगा अगर मैं कुछ भाग्य से बाहर हूं और स्वयं मैन्युअल रूप से काम करना है, क्योंकि यहां तक ​​कि सबमोडुल्स हटाने से भी आसान नहीं है।

वेब के समाधान से एकत्रित समाधान "एक git submodule के लिए दूरस्थ रिपॉजिटरी बदलना"

आपको यूआरएल को अद्यतन करने के लिए .gitmodules फ़ाइल को संपादित करने में सक्षम होना चाहिए और फिर सुपर पॉवर और आपके काम की प्रतिलिपि में बदलाव को प्रतिबिंबित करने के लिए git submodule sync को चलाएं।

ये कमांड कमांड प्रॉम्प्ट पर स्थानीय रिपॉजिटरी पर किसी भी फाइल को बदलने के बिना काम करेगा

 git config --file=.gitmodules submodule.Submod.url https://github.com/username/ABC.git git config --file=.gitmodules submodule.Submod.branch Development git submodule sync git submodule update --init --recursive --remote 

कृपया स्क्रीनशॉट के लिए ब्लॉग को देखें: जीआईटी सबम्यूलियल्स यूआरएल / शाखा को दूसरे यूआरएल / उसी रिपॉजिटरी की शाखा में बदलना

दरअसल, अप्रैल 2009 में एक पैच gitmodule भूमिका स्पष्ट करने के लिए प्रस्तुत किया गया है ।

तो अब gitmodule प्रलेखन में शामिल नहीं है:

.gitmodules फ़ाइल, एक git काम कर पेड़ की शीर्ष-स्तरीय निर्देशिका में स्थित है, एक पाठ फ़ाइल है जिसमें कंसल्टैक्स के साथ मिलान की आवश्यकता है- linkgit: git-config 1 ।
[नया]:
चूंकि यह फाइल गिट द्वारा प्रबंधित की जाती है, यह प्रोजेक्ट के सबमोडुल्स के + रिकॉर्ड को ट्रैक करता है।
इस फ़ाइल में संग्रहीत जानकारी प्रोजेक्ट कॉन्फ़िगरेशन फ़ाइल में संग्रहीत रिकार्ड के प्रामाणिक संस्करण के लिए एक संकेत के रूप में उपयोग किया जाता है।
उपयोगकर्ता विशिष्ट रिकॉर्ड परिवर्तन (उदाहरण के लिए नेटवर्किंग परिस्थितियों के कारण सबंडल यूआरएल में मतभेद के खाते के लिए) को विन्यास फाइल में बनाया जाना चाहिए, जबकि रिकार्ड परिवर्तनों को प्रचारित किया जाना चाहिए (उदाहरण के लिए- सबमिशन स्रोत के स्थानांतरण के कारण) इस फाइल में किया जाना चाहिए ।

यह बहुत ज्यादा जिम के जवाब की पुष्टि करता है


यदि आप इस git submodule ट्यूटोरियल का पालन करते हैं, तो आप देखें कि आपको " git submodule init " की जरूरत है।

" git submodule sync " को अगस्त 2008 में जोड़ दिया गया है ठीक यूआरएल परिवर्तन (जब विशेष रूप से submodules की संख्या महत्वपूर्ण है) उस कार्य को आसान बनाने के लिए।
उस कमांड के साथ सहयोगी स्क्रिप्ट पर्याप्त सीधा है:

 module_list "$@" | while read mode sha1 stage path do name=$(module_name "$path") url=$(git config -f .gitmodules --get submodule."$name".url) if test -e "$path"/.git then ( unset GIT_DIR cd "$path" remote=$(get_default_remote) say "Synchronizing submodule url for '$name'" git config remote."$remote".url "$url" ) fi done 

लक्ष्य रहता है: git config remote."$remote".url "$url"

मेरे लिए क्या काम किया (विंडोज पर, git संस्करण 1.8.3.msysgit.0 का उपयोग करते हुए):

  • नई रिपॉजिटरी के लिए पथ के साथ अद्यतन। गिटमोड्यूल
  • ".git / config" फ़ाइल से संबंधित रेखा निकालें
  • ".git / modules / external" निर्देशिका में संबंधित निर्देशिका को हटाएं
  • चेक आउट किए गए सबुमुंड डायरेक्टरी को हटाएं (अनिश्चित यदि यह आवश्यक है)
  • git submodule init और git submodule update चलाएं
  • सुनिश्चित करें कि जाँच किए गए सबुमोड सही प्रतिबद्धता पर है, और प्रतिबद्ध है, क्योंकि यह संभावना है कि हैश अलग होगा

यह सब करने के बाद, सब कुछ मैं उम्मीद कर रहा हूं। मैं कल्पना करता हूं कि रिपॉजिटरी के अन्य प्रयोक्ताओं को भी इसी तरह का दर्द होगा जब वे अपडेट करते हैं – आपके प्रतिबद्ध संदेश में इन चरणों को समझाना बुद्धिमान होगा!

सरल शब्दों में, आपको केवल .gitmodules फ़ाइल को संपादित करने की ज़रूरत है, फिर resync और अपडेट करें:

फाइल संपादित करें, या तो एक git कमांड या सीधे के माध्यम से:

 git config --file=.gitmodules -e 

या केवल:

 vim .gitmodules 

फिर resync और अद्यतन:

 git submodule sync git submodule update --init --recursive --remote 

बस अपने .git / config फाइल को संपादित करें उदाहरण के लिए; अगर आपके पास एक "आम" सबमिशन है तो आप इसे सुपर मॉड्यूल में कर सकते हैं:

 git config submodule.common.url /data/my_local_common 

git config --file=.gitmodules -e डिफ़ॉल्ट संपादक खोलता है जिसमें आप पथ को अपडेट कर सकते हैं