2009-11-19 13 views
22

तो मुझे लगता है कि गिट फ़ोल्डरों को नहीं पहचानता है, या मुझे यह कहना चाहिए कि काम करने वाले पेड़ में खाली फ़ोल्डर्स के बीच एकमात्र परिवर्तन git status में git add . के बाद दिखाई नहीं दे रहा है।गिट और खाली फ़ोल्डर्स

आप काम करने वाले पेड़ (रनटाइम स्टोरेज के लिए) में खाली फ़ोल्डरों को जोड़ने की आवश्यकता को कैसे संभालेंगे और जब उन्हें अन्य भंडारों को वर्तमान भंडार से खींच लिया जाएगा (जिसमें फ़ोल्डर्स जोड़े गए थे)?

+2

संभावित डुप्लिकेट [मैं एक गिट भंडार में एक खाली निर्देशिका कैसे जोड़ूं] (http://stackoverflow.com/questions/115983/how-do-i-add-an-empty-directory-to-a- गिट-रिपोजिटरी) – interjay

+0

मैंने यहां इस बारे में एक छोटा ब्लॉग पोस्ट किया है http://www.developertipoftheday.com/2011/07/empty- फ़ोल्डर्स-in-git-mecurial.html जो मदद कर सकता है। –

उत्तर

21

लोग अक्सर कि सीमा ...

+13

व्यक्तिगत रूप से मैं इसे कुछ संक्षिप्त स्पष्टीकरण के साथ एक रीडेमे फ़ाइल बनाउंगा कि फ़ोल्डर –

+0

@jk क्यों मौजूद है। या जब आवश्यक हो तो निर्देशिका बनाएँ।यह गिट की गलती नहीं है आपकी निर्देशिका स्क्रिप्ट या निर्माण उपकरण मरने पर उपकरण मर जाता है। –

+1

@omouse वास्तव में यह आमतौर पर एक छोटी गाड़ी के निर्माण या उपकरण/स्क्रिप्ट को तैनात करने के लिए एक कामकाज है –

6

आप बिल्कुल सही हैं पर काबू पाने के फ़ोल्डर में एक प्लेसहोल्डर के रूप एक खाली फ़ाइल डाल दिया। गिट, कुछ अन्य संस्करण नियंत्रण प्रणालियों की तरह, खाली फ़ोल्डरों या फ़ोल्डर्स के गुणों की संज्ञान नहीं लेता है। फ़ोल्डर्स केवल अनजान मौजूद हैं क्योंकि उनमें फाइलें हैं। यदि आप इसे अनुकरण करना चाहते हैं, तो आपको प्लेसहोल्डर फ़ाइलों को उनके अंदर छोड़ना होगा।

42

मैं आमतौर पर उन निर्देशिकाओं में एक .gitignore डाल के रूप में आप की संभावना वैसे भी किसी भी क्रम उत्पन्न डेटा की उपेक्षा करना चाहते हैं।

+7

एक और सम्मेलन निर्देशिका में ".gitkeep" नामक फ़ाइल डालना है। देखें: http://stackoverflow.com/questions/7229885/gitignore-vs-gitkeep –

3

या तो फ़ोल्डर Git का ट्रैक रखने या यदि संभव हो तो अपने निर्माण प्रणाली के लिए इन फ़ोल्डर बनाने के लिए निर्देश जोड़ना चाहते हैं में खाली प्लेसहोल्डर फ़ाइलें डाल दिया।

4

आप का एहसास होना चाहिए कि आप कुछ संसाधनों है कि स्रोत, अपने निर्माण प्रणाली का हिस्सा नहीं है, लेकिन अपने आवेदन के संचालन के लिए आवश्यक नहीं कर रहे हैं स्थापित करने के लिए अपने स्रोत नियंत्रण प्रणाली के लिए पूछ रहे हैं। मैं निम्नलिखित में से एक करूँगा:

  1. बिल्ड को आवश्यक निर्देशिका बनाएं।
  2. क्या एप्लिकेशन आवश्यक निर्देशिकाएं चलाता है जैसे यह चलता है।

इसी प्रकार, यदि एप्लिकेशन लॉग फ़ाइल में शामिल होना चाहता था, तो यह समझ में नहीं आता कि लॉगफाइल संशोधन नियंत्रण प्रणाली में शुरू हो जाएगा, है ना?

-3

मैं जब डिडुप्लीकेशन और संपीड़न के लिए समर्थन के साथ एक बैकअप उपकरण के रूप में Git का उपयोग करने की कोशिश कर इस समस्या का सामना करना पड़ा।

मेरे समाधान मेरे अपने सिस्टम बनाने के लिए किया गया था। यह http://github.com/meingbg/store

पर उपलब्ध है, फिर, मेरा उद्देश्य फाइलों को स्टोर करना था, कोड के साथ काम नहीं करना था।

+0

आप rsync का उपयोग क्यों नहीं करते? –

+0

@omouse: rsync परिवर्तनों को ट्रैक नहीं करता है। meingbg गिट-एनेक्स में रुचि रख सकता है, एक गिट-आधारित समाधान जो फ़ाइलों में परिवर्तन ट्रैक करता है। – sleblanc

0

मैं भी यही मुद्दा का सामना करना पड़ रहा है। मुझे लगता है कि गिट ट्रैक के तरीके के साथ इसे करना होगा। यह फाइलों को ट्रैक नहीं करता बल्कि इसकी सामग्री को ट्रैक करता है। परिवर्तनों को दिखाते समय, काम करता है या लॉग करता है, यह विशिष्ट फ़ाइलों में परिवर्तनों को मानचित्र करता है और व्यक्तिगत फ़ाइलों में परिवर्तन दिखाता है। अधिक जानकारी के लिए इस वीडियो को देखें Tech Talk: Linus Torvalds on git लिनस विशेष रूप से एक फ़ाइल से दूसरे में फ़ंक्शन को स्थानांतरित करने के बारे में एक उदाहरण देता है और कैसे गिट परिवर्तन को ट्रैक करने में सक्षम होता है।

6

मैं आमतौर पर उन फ़ोल्डर्स में खाली .gitkeep डालता हूं।

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