2010-05-27 4 views
7

चुनने के लिए जब बाइनरी फाइलें, swfs, jars और flvs स्थानीय रूप से बदल दिए जाते हैं, और मैं परिवर्तनों को खींचने की कोशिश करता हूं, तो गिट उन्हें मर्ज करने और संघर्ष की रिपोर्ट करने का प्रयास करता है।बाइटरी फाइलों को मर्ज न करने के लिए गिट बताएं लेकिन

और फिर, मैं एक अस्थायी शाखा में शाखा करता हूं, और स्थानीय बदली बाइनरी फाइलों को प्रतिबद्ध करता हूं, और उन्हें अपनी रणनीति के साथ खींचने के बाद वापस विलय करता हूं। -- बहुत ज्यादा काम।

क्या गिट को बताने का कोई तरीका है, बाइनरी फाइलों को विलय करने का प्रयास न करें और मुझसे पूछें कि इनमें से कौन सा संस्करण उपयोग करना है।

उत्तर

6

आप एक .gitattributes फ़ाइल में मर्ज ड्राइव (केवल एक दिया सबट्री के लिए, केवल कुछ फ़ाइल प्रकारों के लिए) सेट कर सकते हैं

देखें उदाहरण के लिए this question (या this one)।

# choose the name of the merge driver to be use for all jar files 
echo *.jar merge=keepTheir > dirWithJarFiles\.gitattributes 

Git रेपो की config में अपने मर्ज ड्राइवर घोषित:

git config merge.keepTheir.name "always keep their during merge" 
git config merge.keepTheir.driver "keepTheir.sh %O %A %B" 

या

git config merge.keepMine.name "always keep mine during merge" 
git config merge.keepMine.driver "keepMine.sh %O %A %B" 
[merge "keepMine"] 
     name = always keep mine during merge 
     driver = keepMine.sh %O %A %B 

उदाहरण मैं एक विकल्प के लिए आप से पूछना नहीं है दे लेकिन हमेशा रखेंगे विलय करते समय "मेरा" (या "तुम्हारा") संस्करण।
लेकिन आप इस विलय ड्राइवर द्वारा निष्पादित स्क्रिप्ट को एक प्रश्न पूछने के लिए अनुकूलित कर सकते हैं, और फिर अपनी पसंद को सभी विलयों पर लागू कर सकते हैं।

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