2012-06-22 8 views
55

एक मध्यम आकार की परियोजना के साथ समस्या होने पर जहां दृश्य स्टूडियो प्रोजेक्ट फ़ाइलों को टेक्स्ट और विलय के रूप में उनका इलाज करने के कारण गिट के कारण समस्याएं होती रहती हैं। मैं बस फ़ाइल को बाइनरी के रूप में सेट करना चाहता हूं ताकि गिट इन फ़ाइलों को स्वचालित रूप से मर्ज न करे।मैं गिट को बाइनरी के रूप में फ़ाइल कैसे बना सकता हूं?

क्या ऐसा करने का कोई तरीका है?

+2

लेकिन दृश्य स्टूडियो प्रोजेक्ट फाइलें टेक्स्ट फाइलें हैं और विलय करने की आवश्यकता है? –

+0

@ चार्ल्सबैली वे समय-समय पर आपके सबसे खराब तरीके से खराब हो जाएंगे, जिससे आपके सभी निर्माण खराब हो जाएंगे। मैं एक्सएमएल के साथ बेवकूफ नहीं बनना चाहता, मैं चाहता हूं कि मैं इसे नई फाइलें मैन्युअल रूप से जोड़ने के लिए कहूं या संभवतः एक्सएमएल-डिफिंग टूल भी चलाऊं जो जानता है कि इसे सही ढंग से कैसे संभालना है। –

+0

@ michael.bartnett: केवल अगर आप विलय को गड़बड़ करते हैं, निश्चित रूप से? –

उत्तर

77

हां, attributes का उपयोग कर। अपने .gitattributes फ़ाइल में कुछ इस तरह रखो (अगर यह मौजूद नहीं है इसे बनाने):

*.sln binary 
*.suo binary 
*.vcxproj binary 

यहाँ binary is actually a predefined macro, बराबर -diff -merge -text करने के लिए।

आप अभी भी diff को देखने के लिए सक्षम होना चाहते हैं, तो आप उपयोग कर सकते हैं:

*.sln -merge -text 

इस तरह, *.sln फ़ाइलें मर्ज नहीं जाएंगे, नहीं EOL सामान्यीकृत, लेकिन इस बीच अंतर करने योग्य है।

+1

यह फ़ाइल कहां है? दिए गए उत्तर में दिए गए लिंक द्वारा प्रदत्त दस्तावेज के अनुसार – neves

+0

@neves हर जगह एक गिटिनोर फ़ाइल स्थित हो सकती है। –

+0

@neves: आपको अपने रेपो या वैश्विक रूप से स्थानीय रूप से एक या तो स्थानीय बनाना है। '~/.gitattributes' और फिर 'git config --global core.attributesfile ~/.gitattributes' चला रहा है http://stackoverflow.com/questions/28026767/where-should-i-place-my-global-gitattributes -file –

2

आप उस में इन पंक्तियों डालकर बाइनरी फ़ाइल अपने .gitattributes फ़ाइल (अगर यह मौजूद नहीं है इसे बनाने) में जिम्मेदार बताते हैं परिभाषित करना चाहिए यह पाठ diff फ़ाइल के रूप में संभाल करने के लिए रोकने के लिए:

# Define binary file attributes. 
# - Do not treat them as text. 
# - Include binary diff in patches instead of "binary files differ." 
*.sln  -text diff 
*.suo  -text diff 
*.vcxproj -text diff 
*.gif  -text diff 
*.gz  -text diff 
*.ico  -text diff 
*.jpeg -text diff 
संबंधित मुद्दे