मेरी गिट भंडार में 2 शाखाएं हैं: मास्टर और विकसित करें। मुझे एक ऐसी स्क्रिप्ट चाहिए जो विकास से सभी परिवर्तनों को स्वचालित रूप से मास्टर में विलीन कर दे।स्क्रिप्ट स्वचालित रूप से 2 गिट शाखाओं को मर्ज करने के लिए?
मैं जेनकींस प्रयोग किया है: Git क्लोन प्लगइन भंडार और उसके बाद इस स्क्रिप्ट ('संस्करण' चर एक नौकरी पैरामीटर है) चलाया जाता है:
# merge
git checkout -b develop origin/develop
git checkout master
git merge -Xtheirs --squash develop -m "v${version}"
# commit
git commit -m "v${version}"
# tag
git tag v${version} -m "v${version}"
# push
git push origin v${version}
मैं एक परीक्षण भंडार पर इसे करने की कोशिश है और इसके साथ विफल रहता है :
Git -Xtheirs विकसित
टकराव (हटाना/संशोधित) विलय: test.txt विकसित में नष्ट कर दिया और सिर में संशोधित। Test.txt का संस्करण HEAD पेड़ में छोड़ा गया।
स्वचालित विलय विफल; संघर्ष को ठीक करें और फिर परिणाम दें।
मैं कैसे इस संघर्ष स्वचालित रूप से ठीक करूं? मैं स्क्रिप्ट हमेशा जोड़ने/संशोधित/के बाद से मास्टर वैसे भी कभी नहीं छुआ है, 'विकसित' शाखा के अनुसार फ़ाइल को हटाना चाहते ...
आप कहते हैं कि "मास्टर कभी नहीं छुआ है" लेकिन आप एक मिल वैसे भी संघर्ष? यदि यह वास्तव में कभी स्पर्श नहीं होता था, तो एक साधारण 'गिट मर्ज - केवल-उत्पत्ति/विकास' पर्याप्त होगा। – fge
यदि आप 'मूल/विकास' संस्करण के साथ मास्टर संस्करण _replace_ करना चाहते हैं और विलय प्रतिबद्धता रिकॉर्ड नहीं करना चाहते हैं, तो 'merge --nosquash' से परेशान क्यों करें? क्या यह सिर्फ 'गिट चेकआउट मास्टर' और गिट रीसेट मूल/विकसित और गिट रीसेट - सॉफ्ट हेड @ {1} 'या इसी तरह के क्लीनर नहीं होगा? –