2011-03-21 16 views

उत्तर

7

आप कहते हैं कि तुम वापस जाना चाहता हूँ init और अद्यतन है, जो स्थिति है जहाँ submodule अभी भी .gitmodules में मौजूद है, लेकिन एक खाली निर्देशिका जो .git/config में पंजीकृत नहीं है है हो रहा था जब।

माना कि आपका submodule foo/bar कहा जाता है, तो आप कर सकता है निम्नलिखित:

# Move the submodule out of your repository, just in case you have changes 
# in there that you realise afterwards that you'd like to preserve: 
mv foo/bar/ ~/backups/old-foo-bar/ 

# Recreate the submodule directory, but empty this time: 
mkdir foo/bar/ 

# Remove all the config variables associated with that submodule: 
git config --remove-section submodule.foo/bar 
# Note that the submodule name is *without* the trailing slash 
0

यदि आप परिवर्तन प्रतिबद्ध थे, तो आप reflog जांच करने के लिए सक्षम होना चाहिए:

git reflog 

एक बार जब आप परिवर्तन सेट मिल आप आप इसे में वापस मर्ज कर सकते हैं खो दिया

हैं। आपके परिवर्तन नहीं दिए गए थे, फिर उन्हें पुनर्प्राप्त नहीं किया जा सकता है।

+0

मैं जो चाहता था वह सबमिशन को संरक्षित करने का एक तरीका था, लेकिन बस मेरे वर्कस्पेस में आबादी वाली फ़ाइलों को हटा दें। बाहर निकलता है, मैं सिर्फ निर्देशिका को हटा सकता हूं और यह किसी भी तरह से सबमिशन को प्रभावित नहीं करता है। तो, मेरे मामले में, मेरे submodules परियोजनाओं नाम की एक निर्देशिका में हैं। मैं सिर्फ परियोजनाओं/टूलचेन को हटा सकता हूं और सामग्री चली गई है, लेकिन गिट हटाने को रिकॉर्ड नहीं करता है। इस कोशिश करने के लिए सभी को धन्यवाद। – user561638

1

कोशिश (git1.8.3 साथ, 22d अप्रैल 2013) एक:

git submodule deinit 

("How do I remove a Git submodule?" देखें)

यह .git/config से पूरे submodule.<name> अनुभाग को हटा देता है दिए गए सबमिशन के लिए

हालांकि आपको उस सबमिशन के लिए काम करने वाले पेड़ को हटाना पड़ सकता है।

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