मेरे पास कई रिमोट रिपॉजिटरीज़ हैं जिन्हें मैं एक साथ विलय करना चाहता हूं। उन रिपॉजिटरीज़ में से कुछ उप-रिमोट रिमोट के लिए अद्वितीय हैं (उनमें डेटा शामिल है जो होस्ट-विशिष्ट है), अन्य सबट्री में ऐसे डेटा होते हैं जो सभी रिमोट्स में आम हैं (माना जाता है)।"गिट मर्ज-एस उनके" की आवश्यकता है - लेकिन मुझे पता है कि यह मौजूद नहीं है
मैं जो करना चाहता हूं, अनिवार्य रूप से, प्रत्येक रिमोट के लिए "गिट पुल" चलाया जाता है। यह दूरस्थ मास्टर के लिए रिमोट मास्टर के लिए रिमोट मास्टर के लिए ट्रैकिंग शाखा के साथ स्थानीय मास्टर शाखा को तेजी से आगे बढ़ाएगा, जो रिमोट पर बदल गया है, और सामान्य फाइलों के लिए कुछ नहीं करेगा क्योंकि वे नहीं बदलेंगे।
एक सामान्य फ़ाइल में बदलाव (इसे एफ कहते हैं, एफ को बदलने के साथ ') एक समस्या नहीं होनी चाहिए, भले ही यह केवल पहले एक रिमोट पर हो। गिट-मर्ज सही चीज करेगा और मुझे मेरे समग्र वर्कस्पेस में एफ की एक प्रति देगी, जो मैं चाहता हूं। समस्या तब आती है जब एक ही सामान्य फ़ाइल किसी अन्य रिमोट (इसे एफ कहते हैं) पर अलग-अलग तरीके से बदलती है। गिट-मर्ज मुझे एफ 'और एफ "का एक समग्र प्रदान करेगा, जो मैं नहीं चाहता हूं। मैं चाहता हूं कि एफ "
जब मैंने साफ़केस के साथ काम किया तो हमने इसे एक प्रति-विलय कहा। विलय का परिणाम हमेशा योगदानकर्ता की एक सटीक प्रति थी। यह बहुत कुछ लगता है जैसे" गिट मर्ज-उनका " होगा, सिवाय इसके कि यह अस्तित्व में नहीं है।
मुझे आश्चर्य है कि मैं "गिट-रीड-पेड़-एम - ट्रिविअलियल" के साथ कुछ पका सकता हूं ताकि तेजी से आगे निकलने के लिए विलय हो जाए, फिर करें गिट-मर्ज और एक कस्टम मेरेटूल के साथ कुछ जादू जो $ REMOTE फ़ाइल को $ MERGED पर प्रतिलिपि बनाते हैं। लेकिन इसके साथ ही मैं नहीं देखता कि मैं एफ 'और एफ "को कंपोजिट करने से गिट-विलय कैसे रोक सकता हूं अगर यह विलय है तुच्छ।
मैंने इस साइट पर Is there a "theirs" version of "git merge -s ours"? लिंक पढ़ा है, और जूनियो हैमनो द्वारा पोस्ट यह संदर्भ बताता है कि क्यों "गिट मर्ज-एस उनका" इतना बुरा विचार है, लेकिन यह मेरे लिए मामला नहीं है। मैं पुराने इतिहास का महत्व देता हूं, लेकिन मुझे जहाज कूदने और रिमोट साइट पर बदलाव करने की आवश्यकता होती है जब कोई होता है। स्थानीय साइट पर कोई नया काम नहीं किया जाता है। जब किसी एक में परिवर्तन होता है तो अंतिम मतदान वाले रिमोट से नवीनतम "सामान्य" फ़ाइल लेते हुए, इसे बस सभी दूरस्थ साइटों का एक संयोजन बनाने की आवश्यकता होती है।
किसी भी मदद के लिए अग्रिम धन्यवाद, जो आप मुझे दे सकते हैं।
gitattributes आदमी पृष्ठ से है: जब निर्णय लेने से क्या विशेषताओं एक करने के लिए आवंटित कर रहे हैं पथ, गिट $ GIT_DIR/जानकारी/विशेषता फ़ाइल (जिसमें उच्चतम प्राथमिकता है) का अनुपालन करता है, प्रश्न में पथ के समान निर्देशिका में फ़ाइल को फ़ाइल करता है, और इसके मूल निर्देशिका कार्य वृक्ष के अपूर्ण तक (आगे की निर्देशिका इसमें .gitattributes प्रश्न में पथ से है, इसकी प्राथमिकता कम है) ... इसलिए प्रासंगिक पेड़ के शीर्ष पर अपना .gitattribute डालें। कस्टम मर्ज ड्राइवर केवल उस पेड़ के लिए आवेदन करेगा। – VonC
'echo * merge = keepTheir> dirWithCopyMerge \ .gitattributes' को सभी फ़ाइलों के लिए सभी फ़ाइलों के लिए' dirWithCopyMerge' के अंतर्गत सभी फ़ाइलों के लिए यह नहीं करना चाहिए। यह वही होना चाहिए जो आप खोज रहे हैं। – VonC
मैंने अपनी पिछली टिप्पणियों को प्रतिबिंबित करने के लिए अभी अपना जवाब पूरा कर लिया है। – VonC