2009-09-15 4 views
5

में अलग-अलग फाइलें मैं अपनी एक अलग शाखा में स्थैतिक फ़ाइलों को रखने की कोशिश कर रहा हूं ताकि मैं उन्हें अपने मास्टर ब्रैच में विलय करने से रोक सकूं (हेरोोकू पर, आपके एप्लिकेशन के स्लग को छोटे रहने की आवश्यकता है)। मैं अपनी स्थिर फाइलों को अनदेखा नहीं करना चाहता, क्योंकि मैं उन्हें अपनी "डेवेल" शाखा में रखना चाहता हूं।गिट

आदर्श रूप में मैं test.db खाली रखना चाहता हूं और मेरा पूरा सार्वजनिक फ़ोल्डर मास्टर शाखा में खाली रखना चाहता हूं।

तो, क्या मैं एक शाखा पर 'ओवरले' बना सकता हूं? क्या मैं कुछ मास्टर/निर्देशिकाओं को अपनी मास्टर शाखा में विलय करने से रोक सकता हूं?

+0

@ जोनाथन: वर्तनी जांच के लिए धन्यवाद। – arbales

+0

नोट: यह एक समाधान है, लेकिन अन्य एक ही परिणाम प्राप्त करने के लिए किसी अन्य संगठन का प्रस्ताव दे सकते हैं। – VonC

+0

जैसा कि मुझे संदेह होगा। मैं निश्चित रूप से अपने स्वयं के/अन्य के संपादन के लिए, अन्य रोचक समाधान सुनने में दिलचस्पी लेता हूं। – arbales

उत्तर

8

आप अपने गुरु शाखा पर उन्हीं स्टैटिक फ़ाइलें निर्धारित कर सकते हैं, लेकिन: आप को निर्दिष्ट

कि चूंकि विलय .gitattribute अन्य शाखाओं पर परिभाषित नहीं किया जाएगा, उन फ़ाइलों का विलय सामान्य रूप से आगे बढ़ेगा।


विचार निम्नलिखित सामग्री के साथ मास्टर शाखा पर उन स्थिर फ़ाइलों की निर्देशिका में .gitattributes फ़ाइल को परिभाषित करने के लिए है:

myStaticFile1 merge=keepMine 
myStaticFile2 merge=keepMine 
myStaticFile3 merge=keepMine 

उन तीन फ़ाइलें हमेशा अपने स्थानीय सामग्री रखना होगा (जो मास्टर पर विलय करते समय मास्टर पर खाली है)।

आपको एक मर्ज ड्राइवर को परिभाषित करना होगा (यहां "keepmine" कहा जाता है)। उस स्क्रिप्ट के लिए जुड़े प्रश्न देखें।

+0

क्या आप थोड़ा और विस्तार से समझा सकते हैं? मैंने पहले विशेषताओं का उपयोग नहीं किया है और लिंक 100% सीधा नहीं है। – arbales

+0

भयानक - स्पष्टीकरण के लिए धन्यवाद! – arbales

+0

इसके अलावा, मैं वाइल्डकार्ड को परिभाषित करने में सक्षम नहीं प्रतीत होता, मैंने सार्वजनिक/* विलय = keepMine की कोशिश की, जो काम नहीं किया। मैंने निर्देशिका को हटाने और इसे छूने की कोशिश की, एक फ़ाइल बनाते हुए, लेकिन गिट शिकायत करता है और विलय पर जनता का एक और संस्करण बनाता है। – arbales

0

फ़ाइलों में .gitignore में फ़ाइलें जोड़ें। जब आप चेकआउट डेवेल करते हैं, तो गिटिनोरोर बदल जाएगा और अब उन्हें अनदेखा नहीं करेगा। (ध्यान दें कि यदि आप git clean -x चलाते हैं, तो फाइलों को अधिलेखित किया जाएगा।)