लगभग सभी परियोजनाओं जिन पर मैंने काम किया है, उनमें कुछ प्रकार की "जमे हुए सामग्री" है जो हमेशा क्लोन होने पर आनी चाहिए, फिर भी शायद ही कभी बदला जाए (उदाहरण के लिए नीचे देखें)। मैंने गिट का उपयोग करके विभिन्न दृष्टिकोणों का प्रयास किया है, लेकिन वे सभी त्रुटि-प्रवण हैं: लोग अकसर गलती से बदलाव करते हैं।गिट - जमे हुए सामग्री को संभालना
यह सुनिश्चित करने के लिए एक सूक्ष्म मामला है: फ़ाइलें/फ़ोल्डर संस्करणीकृत किया जाना चाहिए, लेकिन बदलाव की विशाल बहुमत नहीं धकेल दिया जाना चाहिए।
मैं चारों ओर देख रहे हैं है कुछ विकल्प:
git update-index --assume-unchanged <file>
: समस्या - इस would appear to be a local setting, तो यह केवल एक दिया मशीन पर समस्या का हल। नए क्लोन भूल जाते हैं और अभी भी दुर्घटना से बदलाव करते हैं।git update-index --skip-worktree <file>
: समस्या - के बाद से मैं नहीं लगता सूचकांक को परिवर्तन कभी propogated रहे हैं एक ही मुद्दा है प्रकट होता है,।git rm --cached <file>
: समस्या - वास्तव में कोई समाधान नहीं है क्योंकि इस टोस्ट को धक्का देने पर हर किसी की प्रतिलिपि होती है!echo <file> >> .gitignore
: समस्या - नहीं वास्तव में एक समाधान है, क्योंकि यह केवल नियंत्रण एक वस्तु है कि क्या रेपो को गयी।- काम से फ़ाइल परिवर्तनों को बाहर करने के लिए धुंध/साफ फ़िल्टर का उपयोग करें (देखें jthill's answer): समस्या - जटिल, त्रुटि प्रवण: अभी भी प्रत्येक डेवलपर को स्थानीय रूप से कॉन्फ़िगर करने की आवश्यकता है।
इस प्रश्न का एक स्वीकार्य उत्तर प्रत्येक नए डेवलपर द्वारा विशेष कार्यों की आवश्यकता नहीं है।
क्यों? चूंकि यह उपरोक्त समाधानों के साथ बिल्कुल समस्या है, जो मेरे अनुभव में ऐसी परिस्थितियों की ओर जाता है जहां "किसी ने फिर से वह फ़ाइल की है"।
खोज आसानी से कई प्रश्नों को चालू करती है। हमें अंतिम जवाब चाहिए!
- How to freeze a file in a repository
- Prevent local changes getting pushed in Git
- git assume-unchanged implications
- Howto prevent git from pushing changes to some files
- Ignore modified (but not committed) files in git?
- Preventing a file overwrite with Git
उदाहरण:
+०१२३५१६४१०यहां मामला है कि मैं एटीएम से निपट रहा हूं। मेरी परियोजना एक ऐसी वेबसाइट है जो विकी सॉफ़्टवेयर को एम्बेड करती है (जिसे मैंने नहीं लिखा था)। विकी घटक को एक गैर-तुच्छ फ़ोल्डर संरचना की आवश्यकता होती है जिसका उपयोग डेटाबेस की तरह किया जाता है (शायद एक होना चाहिए)। इसे काम करने के लिए पहले से मौजूद फ़ोल्डर और फ़ाइलों को खोजने की जरूरत है। थोड़ी देर के बाद ये फ़ाइलें बड़ी हो जाती हैं - हम उन परिवर्तनों को ट्रैक नहीं करना चाहते हैं! इस फ़ोल्डर संरचना में कुछ कॉन्फ़िगरेशन भी शामिल हैं (मुझे पता है)।अगर मैं रेपो में नंगे प्रतिलिपि शामिल कर सकता हूं, और किसी भी तरह (लगभग) कभी भी अपने परिवर्तनों को ट्रैक नहीं करता है, तो यह सही होगा।
क्या आप "जमे हुए सामग्री" के बारे में कुछ और जानकारी दे सकते हैं? क्या आप विन्यास फाइलों के बारे में बात कर रहे हैं? डाटाबेस फिक्स्चर? कुछ और? – Chris
महान प्रश्न (और अच्छे शोध प्रयास)। यह वास्तव में एक गिट अकसर किये गए सवाल है, और एक कैनोलिक जवाब के हकदार है। – sleske
@Chris - फ़ोल्डर/फ़ाइलों का कुछ विवरण जोड़ा गया। –