सवाल मैं एक सबमिशन कैसे हटा सकता हूं?


मैं एक गिट सबमिशन कैसे हटा सकता हूं?

वैसे, क्या कोई कारण है जो मैं बस नहीं कर सकता

git submodule rm whatever

?


3024
2017-08-11 14:31


मूल


सरल जवाब stackoverflow.com/a/21211232/94687 अब सही है, और इसे चिह्नित किया जाना चाहिए। अब, यह बस है git rm modulename तथा rm -rf .git/modules/modulename - imz -- Ivan Zakharyaschev
यह वास्तव में सच नहीं है। वह उत्तर से सबमिशन प्रविष्टि को हटाने का पता नहीं लगाता है .git/config। स्वीकृत उत्तर एक सबमिशन को पूरी तरह से हटाने के लिए अद्यतित तरीका दिखाता है। इस जवाब में यह भी संक्षेप में समझाया गया है: stackoverflow.com/a/36593218/1562138 - fvgs
मैंने यह आलेख submodules को हटाने में बहुत उपयोगी पाया। इसमें .gitsubmodules और .git / config फ़ाइलों में प्रविष्टियों को हटाने के बारे में जानकारी शामिल है संपर्क - Ri_
कृपया स्वयं को कुछ समय बचाएं और सीधे उस उत्तर पर जाएं जो काम करता है (2017 में): stackoverflow.com/a/36593218/528313 - Vincenzo Pii
मैंने दो दिनों के लिए सबमिशन समस्याओं को कुश्ती की है। सफलता मिली जब मुझे यह मिला: forums.developer.apple.com/thread/13102। असल में, एक्सकोड, और शायद अन्य ऐप्स, यूआरएल युक्त '~' का विस्तार करने के लिए संघर्ष करते हैं। एक बार जब मैंने ssh बदल दिया: //username@server.remoteHost.com/~/git/MyRepo.git ssh: //username@server.remoteHost.com/home/username/git/MyRepo.git (वास्तविक पथ देखें आपके सर्वर पर), सभी अजीबता दस मिनट के साथ गायब हो गई। यह भी देखें stackoverflow.com/questions/32833100/... - Elise van Looij


जवाब:


जबसे git1.8.3 (22 अप्रैल, 2013):

एक बार जब आप एक सबमिशन में अपनी रुचि व्यक्त करते हैं, तो "मुझे अब इस सबमिशन में दिलचस्पी नहीं है" कहने के लिए कोई पोर्सिलीन तरीका नहीं था "submodule init"।
  "submodule deinit"ऐसा करने का तरीका है।

हटाने की प्रक्रिया भी उपयोग करता है git rm (git1.8.5 अक्टूबर 2013 के बाद से)।

सारांश

3-चरण हटाने की प्रक्रिया तब होगी:

0. mv a/submodule a/submodule_tmp

1. git submodule deinit -f -- a/submodule    
2. rm -rf .git/modules/a/submodule
3. git rm -f a/submodule
# Note: a/submodule (no trailing slash)

# or, if you want to leave it in your working tree and have done step 0
3.   git rm --cached a/submodule
3bis mv a/submodule_tmp a/submodule

व्याख्या

rm -rf: इसमें उल्लेख किया गया है डैनियल श्रोएडरकी उत्तर, और संक्षेप में Eonil में टीका - टिप्पणी:

यह पत्तियां .git/modules/<path-to-submodule>/ अपरिवर्तित।
  इसलिए यदि आप एक बार इस विधि के साथ एक सबमिशन हटाते हैं और उन्हें दोबारा जोड़ते हैं, तो यह संभव नहीं होगा क्योंकि भंडार पहले ही दूषित हो गया है।


git rm: देख 95c16418 प्रतिबद्ध करें:

वर्तमान में "git rm"एक सबमिशन पर सुपरप्रोजेक्ट और इंडेक्स से गिटलिंक से सबमिशन के कार्य पेड़ को हटा देता है।
  लेकिन सबमिशन के खंड में .gitmodules अनचाहे छोड़ा गया है, जो अब हटाए गए सबमिशन का बचे हुए है और उपयोगकर्ताओं को परेशान कर सकता है (जैसा कि सेटिंग में विरोध है .git/config, यह एक अनुस्मारक के रूप में अवश्य रहना चाहिए कि उपयोगकर्ता ने इस सबमिशन में रुचि दिखाई है, इसलिए जब पुराने प्रतिबद्धता की जांच की जाती है तो इसे बाद में दोहराया जाएगा)।

चलो "git rm"न केवल कार्य पेड़ से सबमिशन को हटाकर उपयोगकर्ता को मदद करें बल्कि"submodule.<submodule name>"से खंड .gitmodules फाइल और मंच दोनों।


git submodule deinit: यह उपजी है यह पैच:

साथ में "git submodule init"उपयोगकर्ता गिट को बताने में सक्षम है कि वे एक या अधिक सबमिड्यूल की परवाह करते हैं और इसे अगले कॉल पर पॉप्युलेट करना चाहते हैं"git submodule update"।
  लेकिन वर्तमान में कोई गिटार नहीं बता सकता कि वे अब एक सबमिशन के बारे में परवाह नहीं करते हैं और स्थानीय कार्य पेड़ से छुटकारा पाने के लिए चाहते हैं (जब तक कि उपयोगकर्ता सबमिशन आंतरिक के बारे में बहुत कुछ नहीं जानता और "submodule.$name.url"से सेटिंग .git/config एक साथ काम पेड़ के साथ)।

उन उपयोगकर्ताओं को 'deinit'कमांड।
  इस पूरे हटा देता है submodule.<name> से सेक्शन .git/config या तो दिए गए के लिए   submodule (रों) (या उन सभी के लिए जो शुरू किया गया है अगर '.' दिया हुआ है)।
  विफल होने पर वर्तमान कार्य पेड़ में तब तक संशोधन होते हैं जब तक मजबूर नहीं किया जाता है।
  शिकायत करें कि कमांड लाइन पर दिए गए सबमिशन के लिए यूआरएल सेटिंग में नहीं मिल सकता है .git/config, लेकिन फिर भी असफल नहीं है।

यह ध्यान रखता है अगर (डी) प्रारंभिक कदम (.git/config तथा .git/modules/xxx)

चूंकि git1.8.5, git rm लेता है भी की देखभाल:

  • 'add'चरण जो एक सबमिशन के यूआरएल को रिकॉर्ड करता है .gitmodules फ़ाइल: इसे आपके लिए हटाने की आवश्यकता है।
  • सबमिशन विशेष प्रवेश (जैसा कि द्वारा सचित्र किया गया है यह प्रश्न): गिट आरएम इसे सूचकांक से हटा देता है:
    git rm --cached path_to_submodule(कोई पिछला स्लैश नहीं)
    इससे इंडेक्स में एक विशेष मोड "160000" के साथ उस निर्देशिका को संग्रहीत किया जाएगा, जो इसे सबमिशन रूट निर्देशिका के रूप में चिह्नित करेगा।

यदि आप उस अंतिम चरण को भूल जाते हैं, और नियमित निर्देशिका के रूप में एक सबमिशन को जोड़ने का प्रयास करते हैं, तो आपको त्रुटि संदेश मिल जाएगा:

git add mysubmodule/file.txt 
Path 'mysubmodule/file.txt' is in submodule 'mysubmodule'

नोट: चूंकि गिट 2.17 (क्यू 2 2018), गिट सबमिशन डीनिट अब शेल स्क्रिप्ट नहीं है।
यह एक सी समारोह के लिए एक कॉल है।

देख 2e61273 प्रतिबद्ध करें, 1342476 प्रतिबद्ध करें (14 जनवरी 2018) द्वारा प्रतिष्ठेश चव्हाण (pratham-pc)
(द्वारा विलय जूनियो सी हमानो - gitster - में ead8dbe प्रतिबद्ध करें, 13 फरवरी 2018) 

git ${wt_prefix:+-C "$wt_prefix"} submodule--helper deinit \
  ${GIT_QUIET:+--quiet} \
  ${prefix:+--prefix "$prefix"} \
  ${force:+--force} \
  ${deinit_all:+--all} "$@"

1799
2018-04-23 05:57



क्या आप के लिए उपयोग का एक उदाहरण दिया जा सकता है submodule deinit? - zakdances
@yourfriendzak यहां सफलतापूर्वक इसका उपयोग करने वाले किसी का उदाहरण है: stackoverflow.com/a/16161950/6309। लेकिन ध्यान रखें कि, जो मैंने मूल रूप से विश्वास किया था उसके विपरीत, 1.8.3 अभी तक जारी नहीं हुआ है! यूनिक्स पर, आप इसे स्रोतों से संकलित कर सकते हैं। - VonC
@ हैमिशडाउनर विशेष प्रविष्टि चली जानी चाहिए (निर्देशिका अब एक सबमिशन नहीं है), और .gitmodules ठीक होना चाहिए, लेकिन मैं अभी भी कुछ भी दोबारा जांच करूँगा .git निर्देशिका (यानी स्थानीय कॉन्फ़िगरेशन, अपने स्थानीय रेपो के भीतर: जिसे ए द्वारा संशोधित नहीं किया गया है git pull) - VonC
@ जेन हां, अगर आप इसे हटाने के लिए प्रतिबद्ध हैं .gitmodules प्रविष्टि और इंडेक्स में विशेष प्रविष्टि को हटाने, और रेपो को पुश करें, अन्य इसे खींच सकते हैं और वह सबमिशन समाप्त हो जाएगा। - VonC
यहां एक स्क्रिप्ट है जो उन चरणों को स्वचालित करती है: gist.github.com/sharplet/6289697। इसे अपने में जोड़ें PATH तथा git remove-submodule path/to/submodule। - Adam Sharp


पेज के माध्यम से गिट सबमॉड्यूल ट्यूटोरियल:

एक सबमिशन को हटाने के लिए आपको यह करना होगा:

  1. से संबंधित खंड हटाएं .gitmodules फ़ाइल।
  2. चरण .gitmodules परिवर्तन git add .gitmodules
  3. से संबंधित खंड हटाएं .git/config
  4. रन git rm --cached path_to_submodule (कोई पिछला स्लैश नहीं)।
  5. रन rm -rf .git/modules/path_to_submodule
  6. कमिट git commit -m "Removed submodule <name>"
  7. अब अनचाहे सबमिशन फ़ाइलों को हटाएं
    rm -rf path_to_submodule

यह भी देखें: नीचे वैकल्पिक कदम


3145
2018-01-18 23:30



"और वैसे, क्या कोई कारण है कि मैं बस सबमिशन आरएम को गिट नहीं कर सकता?" ? - abernier
@abernier एक कर्ट उत्तर "हो सकता है क्योंकि ऐसा कोई आदेश मौजूद नहीं है।" मेरा अनुमान है कि वे आकस्मिक डेटा हानि से बचने के लिए सबमिशन फ़ाइलों बनाम सबमिशन कॉन्फ़िगरेशन को हटाने की कोशिश कर रहे हैं। शायद एक व्यक्ति ऐसा सोचता है git submodule rm बस सबमिशन पंजीकरण को हटा देता है, और अगर आश्चर्य स्थानीय भंडार को भी हटा देता है तो आश्चर्यचकित होगा। कोई भी स्थानीय परिवर्तन अप्रत्याशित रूप से खो जाएगा। और शायद एक और व्यक्ति सोचता है कि केवल फाइलों को हटा दिया जाएगा। - John Douthat
सच में, मुझे नहीं पता क्यों। मुझे उम्मीद है कि वे एक आदेश जोड़ते हैं, हालांकि। ये 4 कदम बहुत जटिल हैं। - John Douthat
यहां एक बैश स्क्रिप्ट है जो एक सबमिशन को हटाती है, बस सबमिशन-आरएम के लिए एक गिट उपनाम बनाएं;) gist.github.com/2491147 - Capi Etheriel
rm -rf .git \ modules \ submodule नाम की भी आवश्यकता है? - rogerdpack


सिर्फ एक नोट। गिट 1.8.5.2 के बाद से, दो आदेश करेंगे:

git rm the_submodule
rm -rf .git/modules/the_submodule

जैसा कि @ मार्क शेवरटन के जवाब ने सही ढंग से बताया है, यदि दूसरी पंक्ति का उपयोग नहीं किया जाता है, भले ही आपने अब के लिए सबमिशन हटा दिया हो, तो अवशेष। Git / modules / the_submodule फ़ोल्डर उसी सबमिशन को वापस जोड़ने या भविष्य में प्रतिस्थापित करने से रोक देगा । इसके अलावा, जैसा कि @ वीओएनसी ने उल्लेख किया है, git rm सबमिशन पर अधिकांश काम करेंगे।

- अद्यतन (07/05/2017) -

केवल स्पष्ट करने हेतु, the_submodule परियोजना के अंदर सबमिशन का सापेक्ष पथ है। उदाहरण के लिए, यह है subdir/my_submodule अगर सबमिशन एक उपनिर्देशिका के अंदर है subdir

टिप्पणियों में सही ढंग से बताया गया है और अन्य जवाब, दो आदेश (हालांकि एक सबमिशन को हटाने के लिए कार्यात्मक रूप से पर्याप्त), में एक निशान छोड़ दें [submodule "the_submodule"] का संभाग .git/config (जुलाई 2017 तक), जिसे तीसरे कमांड का उपयोग करके हटाया जा सकता है:

git config -f .git/config --remove-section submodule.the_submodule 2> /dev/null

332
2018-04-13 08:51



मैं गिट संस्करण 2.4.9 (ऐप्पल गिट -60) पर हूं और मुझे बस इतना करना था कि आरएम the_submodule था। मैंने धक्का दिया कि फिर एक फ़ोल्डर को फिर से जोड़ा गया जो सबमिशन के समान है और यह बिना किसी समस्या के काम करता है। - David Silva Smith
यह से सबमिशन प्रविष्टि को हटा नहीं है .git/config। देख stackoverflow.com/a/36593218/1562138 एक सबमिशन को हटाने के लिए पूरी तरह से। - fvgs
यह 100% बिल्कुल शानदार और काम करता है। वाह। - Dan Rosenstark
@ ड्रेविको मैंने अभी गिट 2.11.1 के साथ इसका परीक्षण किया और मैं पहले जैसा ही व्यवहार करता हूं। git init && git submodule add <repository> && git rm <name> पीछे छोड़ देता है .git/config प्रवेश और .git/modules/<name> निर्देशिका और इसकी सामग्री। शायद आपने इसे हटाने से पहले सबमिशन शुरू नहीं किया था? - fvgs
मुझे यह पहले सुरक्षित लगता है .. गिट सबमिशन deinit -f the_submodule - danday74


इस प्रश्न के अधिकांश उत्तर पुराने, अपूर्ण, या अनावश्यक रूप से जटिल हैं।

गिट 1.7.8 या नए का उपयोग करके क्लोन किया गया एक सबमिशन आपके स्थानीय रेपो में स्वयं के चार हिस्सों में ही छोड़ देगा। उन चार निशानों को हटाने की प्रक्रिया नीचे दिए गए तीन आदेशों द्वारा दी गई है:

# Remove the submodule entry from .git/config
git submodule deinit -f path/to/submodule

# Remove the submodule directory from the superproject's .git/modules directory
rm -rf .git/modules/path/to/submodule

# Remove the entry in .gitmodules and remove the submodule directory located at path/to/submodule
git rm -f path/to/submodule

246
2018-03-02 16:07



इस जवाब में इतने कम अपवॉट क्यों हैं? उन सभी लोकप्रिय उत्तरों में कुछ याद आती है, यह केवल एकमात्र ऐसा है जो वास्तव में सबसे आसान तरीके से एक सबमिशन के सभी निशान हटा देता है। और ध्यान दें: आदेशों का क्रम मायने रखता है। - mbdevpl
अपने स्वयं के प्रश्न का जवाब देने के लिए: stackoverflow.com/questions/97875/rm-rf-equivalent-for-windows - Thomas
@mbdevpl स्वीकृत उत्तर के 3 साल बाद आया, और मुझे लगता है कि कोई भी इसे स्वीकार करने के लिए ओपी को मनाने में कामयाब नहीं रहा है - Andy
@Thomas rm -rf बस "पूरे फ़ोल्डर को हटाएं" का अर्थ है ताकि आप विंडोज़ में एक्सप्लोरर जीयूआई से ऐसा कर सकें। वैकल्पिक रूप से, यदि आप विंडोज़ में गिट का उपयोग कर रहे हैं, तो आपके पास गिट बैश भी उपलब्ध होगा, ताकि आप इन सभी आदेशों को वहां चला सकें और वे काम करेंगे जैसे वे हैं - Andy Madge
2018 में यह जटिल जवाब नहीं है? - Warren P


सरल कदम

  1. कॉन्फ़िगरेशन प्रविष्टियों को निकालें:
    git config -f .git/config --remove-section submodule.$submodulename
      git config -f .gitmodules --remove-section submodule.$submodulename
  2. सूचकांक से निर्देशिका निकालें:
    git rm --cached $submodulepath
  3. कमिट
  4. अप्रयुक्त फ़ाइलों को हटाएं:
    rm -rf $submodulepath
    rm -rf .git/modules/$submodulename

कृपया ध्यान दें:  $submodulepath अग्रणी या पिछली स्लैश नहीं है।

पृष्ठभूमि

जब तुम करोगे git submodule add, यह केवल इसे जोड़ता है .gitmodules, परंतु एक बार तुमने किया git submodule init, इसमें जोड़ा गया .git/config

तो यदि आप मॉड्यूल को हटाना चाहते हैं, लेकिन इसे जल्दी से पुनर्स्थापित करने में सक्षम हो, तो बस यह करें:

git rm --cached $submodulepath
git config -f .git/config --remove-section submodule.$submodulepath

यह करना एक अच्छा विचार है git rebase HEAD पहले और git commit अंत में, यदि आप इसे एक स्क्रिप्ट में डालते हैं।

इसके अलावा एक नज़र डालें एक जवाब क्या मैं एक गिट सबमिशन को अनपॉपलेट कर सकता हूं?


185
2017-08-11 14:43



मेरे पास बहुत सारे सबोड्यूल (और एक बड़ी गड़बड़ी) थी इसलिए मुझे उन्हें लूप के माध्यम से पास करना पड़ा। चूंकि उनमें से अधिकतर एक विशिष्ट निर्देशिका के तहत और एलएस आउटपुट में पिछली स्लैश शामिल थीं। मैंने कुछ ऐसा किया for dir in directory/*; do git rm --cached $dir; done। - Pablo Olmos de Aguilera C.
यह सूची प्राप्त करने के लिए जिसे रिकर्सिव विलोपन के लिए स्क्रिप्ट में उपयोग किया जा सकता है - git config -f .git/config -l | cut -d'=' -f1 | grep "submodule.$MODPATH" | sed 's/^submodule\.//' | sed 's/\.url$//' - ऐसा लगता है कि अगर आपको कुछ गड़बड़ हो जाती है, तो अन्यथा वास्तव में ऐसा करना होगा git submodule | grep -v '^+' | cut -d' ' -f3 - errordeveloper
मॉड्यूल की सूची प्राप्त करने के लिए जहां कोई स्थानीय परिवर्तन नहीं किया गया था - git submodule | grep '^+' | cut -d' ' -f2 - errordeveloper
ध्यान दें, मुझे शामिल करना था submodulename डबल कोट्स में "submodulename" .. का जिक्र करते हुए .git/config फ़ाइल - muon
# 2 वही था जो मैं खोज रहा था, धन्यवाद! +1 - AyexeM


सिफारिशों के अलावा, मुझे भी करना था rm -Rf .git/modules/path/to/submodule एक ही नाम के साथ एक नया सबमिशन जोड़ने में सक्षम होने के लिए (मेरे मामले में मैं मूल के साथ एक कांटा बदल रहा था)


80
2017-10-12 10:17



मुझे इसके साथ भी परेशानी हो रही थी। यदि आप एक ही पथ पर एक सबमिशन को पुनर्स्थापित करने का प्रयास करते हैं, तो यह उस स्थान पर शाखा की जानकारी को कैश करता है जो आपने उल्लेख किया है जो चीजों को गड़बड़ कर देता है। - jangosteve
धन्यवाद, मुझे भी इसकी ज़रूरत है। @ एंटन, मैं सहमत हूं, और मैंने इस जानकारी को जोड़ने के लिए शीर्ष जवाब दिया है। - William Denniss
मैंने प्रतिस्थापन कार्य करने के लिए --name विकल्प का उपयोग किया ... देखें stackoverflow.com/questions/14404704/... - joseph.hainline


आपको प्रविष्टि को हटाना होगा .gitmodules तथा .git/config, और इतिहास से मॉड्यूल की निर्देशिका को हटा दें:

git rm --cached path/to/submodule

यदि आप गिट की मेलिंग सूची पर लिखेंगे तो शायद कोई आपके लिए शेल स्क्रिप्ट करेगा।


46
2017-11-01 21:43



किसी भी शेल स्क्रिप्ट की कोई आवश्यकता नहीं है, अन्य उत्तर में एक सबमिशन के सभी निशान हटाने के लिए आदेश हैं: stackoverflow.com/a/36593218/4973698 - mbdevpl


उपयोग किए गए एक सबमिशन को निकालने के लिए:

git submodule add blah@blah.com:repos/blah.git lib/blah

चलाएँ:

git rm lib/blah

बस।

गिट के पुराने संस्करणों के लिए (लगभग ~ 1.8.5) उपयोग करें:

git submodule deinit lib/blah
git rm lib/blah
git config -f .gitmodules --remove-section submodule.lib/blah

45
2017-07-09 17:55



वास्तव में +1। 1.8.3 के बाद गिट से यह एकमात्र सही जवाब है। सही के रूप में स्वीकार किया जाना चाहिए। - Xananax
+1 गिट के नए संस्करणों में हटाने के लिए उचित और साफ तरीका। - Xiv
git rm अभी भी सामान छोड़ देता है .git/modules/। (2.5.4) - Rudolf Adamkovič
@RudolfAdamkovic यह मेरे लिए काम करता है? ध्यान दें कि सटीक पथ मिलान होने पर यह केवल सबमिशन प्रविष्टि को हटा देता है; यदि आप एक सबमिशन ले गए हैं और फिर उपयोग करें git rm यह नहीं करता; मेरे मैक पर 2.5.4 के साथ एक त्वरित परीक्षण .gitmodules फ़ाइल को अद्यतन करता है, जैसा कि यहां दस्तावेज़ में वर्णित है: git-scm.com/docs/git-rm#_submodules ... लेकिन अगर आपको प्लेटफ़ॉर्म / संस्करण का कुछ प्रकार का संयोजन मिला है, जहां ऐसा नहीं होता है, तो आपको शायद इसके बारे में एक बग लॉज करना चाहिए। - Doug
यह जवाब पूरी तरह से सही नहीं है। git rm में सामान छोड़ देता है .git/modules/ डीआईआर और .git/config फ़ाइल (उबंटू, गिट 2.7.4)। अन्य उत्तर 100% काम करता है: stackoverflow.com/a/36593218/4973698 - mbdevpl


आप दूसरों द्वारा प्रदान किए गए समाधानों को स्वचालित करने के लिए उपनाम का उपयोग कर सकते हैं:

[alias]
  rms = "!f(){ git rm --cached \"$1\";rm -r \"$1\";git config -f .gitmodules --remove-section \"submodule.$1\";git config -f .git/config --remove-section \"submodule.$1\";git add .gitmodules; }; f"

अपने गिट कॉन्फ़िगरेशन में रखें, और फिर आप कर सकते हैं: git rms path/to/submodule


40
2018-05-16 09:27





संक्षेप में, यह वही है जो आपको करना चाहिए:

  1. सेट path_to_submodule var (कोई पिछला स्लैश नहीं):

    path_to_submodule=path/to/submodule

  2. .Gitmodules फ़ाइल से प्रासंगिक पंक्ति हटाएं:

    git config -f .gitmodules --remove-section submodule.$path_to_submodule

  3. .Git / config से प्रासंगिक खंड हटाएं

    git config -f .git/config --remove-section submodule.$path_to_submodule

  4. इंडेक्स से केवल $ path_to_submodule को अनस्टेज करें और हटाएं (जानकारी खोने से रोकने के लिए)

    git rm --cached $path_to_submodule

  5. .Gitmodules में किए गए परिवर्तनों को ट्रैक करें

    git add .gitmodules

  6. सुपरप्रोजेक्ट प्रतिबद्ध करें

    git commit -m "Remove submodule submodule_name"

  7. अब अनचाहे सबमिशन फ़ाइलों को हटाएं

    rm -rf $path_to_submodule

    rm -rf .git/modules/$path_to_submodule


38
2017-10-22 10:54



तो मेरे परिवर्तन को खींचने वाले हर कोई को सबमिशन कैश को हटाने के लिए आरएम-आरएफ $ path_to_submodule rm -rf .git / मॉड्यूल / $ path_to_submodule चलाने के लिए होगा? - j2emanue
मैं अद्यतन करने की सलाह देते हैं, git submodule update। और यदि submodules पथ सही ढंग से अद्यतन नहीं किया गया था (गिट एक त्रुटि फेंकता है), उन्हें हटा दें: rm -rf .git/modules/<submodule> && rm -rf <submodule> && git submodule update - luissquall


अगर सबमिशन था अकस्मात जोड़ा गया क्योंकि आपने पहले से ही एक गिट रिपॉजिटरी (निहित है) एक फ़ोल्डर जोड़ा, प्रतिबद्ध और धक्का दिया .git), आपके पास नहीं होगा .gitmodules संपादित करने के लिए फ़ाइल, या कुछ भी .git/configइस मामले में आपको बस चाहिए है :

git rm --cached subfolder
git add subfolder
git commit -m "Enter message here"
git push

FWIW, मैंने भी हटा दिया .git करने से पहले फ़ोल्डर git add


35
2017-12-18 22:50



बिल्कुल मेरा मामला - zhekaus