git में फ़ोल्डर नहीं जोड़ा जा सकता है


21

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

# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#   (commit or discard the untracked or modified content in submodules)
#
#   modified:   protected/ext/SpecificFolder (modified content)
#

तब मुझे याद आया कि शायद .गित फ़ोल्डर था (क्योंकि पिछली बार मैंने वहां क्लोन बनाया था)। मैं उस फ़ोल्डर में गया और गैर-आवश्यक फ़ाइलों (फ़ोल्डरों) और .गित फ़ोल्डर को भी हटा दिया। मैंने जाँच की स्थिति, कुछ भी अजीब नहीं है। फिर किसी अन्य शाखा के लिए प्रतिबद्ध और चेकआउट करें और अचानक मुझे पता चला कि यह फ़ोल्डर अंतिम प्रतिबद्ध में नहीं जोड़ा गया था। दरअसल फोल्डर को जोड़ा गया था लेकिन अंदर की फाइलों को नजरअंदाज कर दिया गया था। अब भी जब मैं git addउस फ़ोल्डर के लिए कुछ भी करने की कोशिश कर रहा हूँ और git statusकोई बदलाव नहीं दिखा रहा है :(

मैं क्या कर सकता हूँ ?


6
यदि मुझे इस समस्या का सामना करना पड़ रहा है तो कोई और इस पेज पर समाप्त होगा: मैं Git में उप-फ़ोल्डर में फाइलें जोड़ने में सक्षम नहीं था। बाद में मैंने पाया कि सब-फोल्डर की अपनी .gitरिपॉजिटरी थी और मुख्य फोल्डर में रिपॉजिटरी के बजाय उस रिपॉजिटरी में फाइलें जोड़ी जा रही थीं। Git GUI में भी, वह उप-फ़ोल्डर एक फ़ोल्डर के बजाय एक फ़ाइल के रूप में दिखाई दिया।
नव

जवाबों:


29

Git निर्देशिकाओं को ट्रैक नहीं करता है; लेकिन उनके भीतर सिर्फ फाइलें।

ऐसा लगता है कि आपके पास एक अनदेखा पैटर्न हो सकता है जो addकुछ भी नहीं करने के लिए पैदा कर रहा है। आप अनदेखा फ़ाइलों को देख सकते हैं git status --ignored; फिर उन्हें साथ ट्रैक किया जा सकता हैgit add --force protected/ext/SpecificFolder


1
नहीं, इसमें कोई बात नहीं है git status --ignored, किसी तरह मैं सोच रहा हूँ कि यह
सबमॉडल

1
यह आदेश एक जीवन रक्षक था। इसके बिना, मुझे कभी पता नहीं चला कि किस निर्देशिका को अनदेखा किया गया।
इगोरगानपोलस्की

वाह ..... मैं कुछ समय के लिए git का उपयोग करने के बाद इस तथ्य को पढ़कर पूरी तरह से बेवकूफ महसूस कर रहा हूं ^ ^
XandruCea

1
अहा, आखिर। यह मेरी समस्या थी। मैंने माता-पिता से .gitignore को कॉपी किया था और सबमॉड्यूल्स में। मैं 'config /' को अनदेखा कर रहा था और बाद में मैंने config नाम के स्रोत dir के तहत एक निर्देशिका बनाई। जोड़ नहीं सकते थे। हल की गई समस्या अब आपको धन्यवाद :-)
Avec

7

Git EMPTY निर्देशिकाओं को ट्रैक नहीं करता है। यदि आपके पास सब-वेरीज की एक परियोजना w / कई परतें हैं, तो git वास्तव में उन निर्देशिकाओं / फाइलों को ट्रैक करता है। यदि ऐसा नहीं होता है, तो यह फाइलों का एक फ्लैट भंडार होगा।


वाह यह इतनी सरल बात है लेकिन लानत है। मैंने इसे पढ़ा और "ओह माय गॉड
इट

3

मैंने ठीक वही किया जो इस उपयोगकर्ता ने किया था: किसी अन्य के अंदर एक मौजूदा गिट रिपॉजिटरी जोड़ें।

लक्षण यह था कि गिट ने उस निर्देशिका को एक फ़ाइल के रूप में मान्यता दी थी, और इस प्रकार निर्देशिका की फ़ाइलों को जोड़ने में असमर्थ था।

उस प्रश्न को हल करने के लिए, मैंने .gitफ़ोल्डर में फ़ोल्डर को हटा दिया , उस फ़ोल्डर को किसी अन्य निर्देशिका में स्थानांतरित कर दिया, अनुक्रमणिका को साफ़ कर दिया, उस निर्देशिका को हटा दिया जहां मेरे रेपो में थी, और फिर मैं निर्देशिका को ठीक से जोड़ने में सक्षम था।

इस का नैतिक है: एक दूसरे के अंदर एक भंडार नहीं जोड़ें।


5
इसे चलाकर भी ठीक किया जा सकता हैgit rm --cached path_to_submodule
विक्टर मरचुक


0

उस निर्देशिका में एक फ़ाइल जोड़ने का प्रयास करें।

$ git add my-dir/index.html

यदि आपको नीचे जैसा कोई आउटपुट दिखाई देता है:

The following paths are ignored by one of your .gitignore files:
my-dir/index.html
Use -f if you really want to add them.
fatal: no files added

आपके gitignores में से एक में एक नियम है जो आपको उस निर्देशिका को जोड़ने से रोकता है।


0

मुझे एक समान सबफ़ोल्डर में एक सबमॉड्यूल होने के लिए परिवर्तित करने की कोशिश करने के बाद इसी तरह के दुष्प्रभाव मिले।

जिस फ़ोल्डर को मैं बदलने का प्रयास कर रहा था उसे फिर से जोड़ना काम करने लगा था, लेकिन यह पता चला है कि इसके अंदर की फाइलें वास्तव में जोड़ी नहीं गई थीं।

विशेष रूप से इसके अंदर एक फ़ाइल जोड़ने की कोशिश ने मुझे बेहतर चेतावनी दी

git add sites/all/modules/contrib/transclusion/transclusion.module 
fatal: Pathspec 'sites/all/modules/contrib/transclusion/transclusion.module' is in submodule 'sites/all/modules/contrib/transclusion'
  • तो यह उस तरह से संबंधित था जिस तरह से मैंने मैन्युअल रूप से पुराने सबमॉड्यूल को हटाने की कोशिश की थी, क्योंकि इसे ठीक से करने के लिए कोई अच्छी तरह से प्रलेखित प्रक्रिया नहीं थी। - मैंने इसे .gitmodules से हटा दिया था। अन्य सामान वास्तव में सबमॉड्यूल की छाया को मिटाने के लिए आवश्यक था।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.