2009-02-09 12 views
16

क्या उनमें से प्रत्येक के लिए दूरस्थ संस्करण ले कर फ़ाइलों के एक पैक के लिए संघर्ष को स्वचालित रूप से हल करने के लिए गिट को निर्दिष्ट करने का कोई तरीका है? उदाहरण के लिए, प्रत्येक फाइल का दूरस्थ संस्करण किसी निश्चित निर्देशिका में लेना है?गिट में दूरस्थ संस्करण का चयन करके मर्ज विवादों को स्वचालित रूप से कैसे हल करें?

+0

(एसओ [एक और की तरह एक शाखा बनाने के लिए Git आदेश] ** का जवाब देखें http://stackoverflow.com/questions/4911794/git-command-for-making-one-branch-like -नहींदर/4912267 # 4912267) ** * सभी * के लिए वर्तमान संभावित तरीकों के लिए ** 'गिट मर्ज-उनके' ** को अनुकरण करें। टिप के लिए – VonC

उत्तर

16

git-merge केवल "हमारी" रणनीति का समर्थन करता है, जहां विलय का परिणाम स्थानीय संस्करण है। और वह केवल पूरे पेड़ के लिए।

यदि आप विलय करते समय एक विवादित स्थिति दर्ज करते हैं, तो आप इंडेक्स से फ़ाइलों को पुनर्प्राप्त करने के लिए git-checkout के --theirs का उपयोग कर सकते हैं।

अंत में आप पेड़ के कुछ हिस्सों को एक विशिष्ट प्रतिबद्धता के लिए मजबूर करने के लिए git-reset कर सकते हैं।

अब भी http://www.seanius.net/blog/2011/02/git-merge-s-theirs/ है जो मूल रूप से merge -s ours बनाने की अनुशंसा करता है और फिर परिवर्तनों को उलट देता है।

+0

10x डेविड। ऐसा लगता है कि गिट-चेकआउट चाल करता है। दुर्भाग्यवश, theours | --theirs विकल्प गिट के मेरे संस्करण द्वारा समर्थित नहीं हैं :(ऐसा लगता है कि मुझे कुछ अपडेट करना है ... –

+1

यदि कोई --ours | --theirs विकल्प गिट-चेकआउट के लिए है, आप - gir show: 2: full_path> file 'के लिए --ours (चरण # 2), और' git show: 3: full_path> फ़ाइल 'के लिए --theirs (चरण # 3) का उपयोग कर सकते हैं या' गिट चेकआउट- अनुक्रमणिका - चरण = 2 | 3 - फ़ाइल ... 'नलसाजी –

+1

अंतिम लिंक मर चुका है – Droidekas

4

आप recursive रणनीति (-s) theirs विकल्प (-X) के साथ उपयोग कर सकते हैं। यही कारण है:

git merge -s recursive -X theirs source_branch 
संबंधित मुद्दे