2016-09-21 12 views
6

के दौरान आंशिक प्रतिबद्धता नहीं कर सकता है SourceTree को अपने नवीनतम संस्करण में अपडेट करने के बाद मैं इस समस्या से लड़ रहा हूं। परिदृश्य निम्नलिखित मान लें:गिट: मर्ज (SourceTree)

फ़ाइल रहे हैं एक, बी और सी संस्करण नियंत्रण में और सिर्फ एक शाखा है। मेरे काम करने की नकल में, मैं फ़ाइल एक तो यह बदल जाता है के लिए कुछ परिवर्तन एक एक में ' के साथ-साथ फ़ाइल बीको बी' बनाते हैं। अपनी कामकाजी प्रतिलिपि में कोई और फ़ाइल सी ->सी ' में परिवर्तन करता है।

मैं चरण बी में केवल में परिवर्तन करता हूं। तो मैं एक नया संशोधन किया है: एक, बी ', सी और काम की नकल ए', बी ', सी

अन्य एक अपने परिवर्तन करता है, तो वह एक संशोधन एक, बी, सी ' बनाता है और मूल करने के लिए यह धक्का।

और यहां यह आता है। जब मैं पुल करता हूं, तो मुझे कुछ विलय परिवर्तन मिलते हैं (सी ')। और मैं , बी ', सी' से एक संशोधन करना चाहता हूं। मैं अब संशोधित फ़ाइल के साथ कुछ भी नहीं करना चाहता हूं। हालांकि, जीआईटी, सोर्सट्री resp।,

घातक: विलय के दौरान आंशिक प्रतिबद्धता नहीं कर सकता है।

जब तक मैं फ़ाइल में परिवर्तन या चरण में परिवर्तन को छोड़ देता हूं।

मुझे पूरा यकीन है कि SourceTree के पिछले संस्करण ने इस व्यवहार का पर्दाफाश नहीं किया था।

अद्यतन 2017/05

यह सबसे हाल ही में SourceTree संस्करण 2.0.20.1 इस मुद्दे में प्रकट होता है हल किया गया है। हालांकि, सुनिश्चित करें कि आप इस संस्करण में अपडेट करना चाहते हैं, क्योंकि इसमें बहुत सारी "बग" (नई विशेषताएं) हैं जो मैं वास्तव में नापसंद करता हूं।

उत्तर

0

घातक: विलय के दौरान आंशिक प्रतिबद्धता नहीं कर सकता।

यह इंगित करता है कि आपका विलय अभी भी प्रगति पर है, कुछ संघर्ष हो सकते हैं जिन्हें आपको अभी भी हल करने की आवश्यकता है।

स्क्रीनशॉट के रूप में ड्रॉप डाउन बॉक्स से संघर्ष का चयन करें और आप त्रिभुज आइकन के साथ विवादित फ़ाइलों की एक सूची देखने में सक्षम होना चाहिए। इन्हें हल करना और फिर प्रतिबद्धता करना आपकी समस्या को ठीक करना चाहिए।

enter image description here

इस पोस्ट में कैसे कॉन्फ़िगर करने के लिए एक संक्षिप्त विचार देने के लिए और इस विलय के विरोध को हल करने के लिए एक बाहरी उपकरण का उपयोग करना चाहिए - How to interactively (visually) resolve conflicts in SourceTree/git

आप अभी भी नहीं बना सकते हैं, तो आप अपने परिवर्तन भी छिपा सकते हो सकता है। मूल से खींचें और इसे ठीक करने के लिए स्टैश लागू करें।

संपादित करता

तुम भी सभी तरह के "कस्टम क्रिया" का उपयोग आपरेशन स्वचालित कर सकते हैं। एक गुप्त कोष >> पुल गुप्त कोष में क्या करने के लिए >> लागू एक नमूना स्क्रिप्ट नीचे

git -c diff.mnemonicprefix=false -c core.quotepath=false stash save temp 
git -c diff.mnemonicprefix=false -c core.quotepath=false fetch origin 
git -c diff.mnemonicprefix=false -c core.quotepath=false pull origin <<local path goes here>> 
git -c diff.mnemonicprefix=false -c core.quotepath=false submodule update --init --recursive 
git -c diff.mnemonicprefix=false -c core.quotepath=false stash apply [email protected]{0} 
+1

आपकी प्रतिक्रिया के लिए धन्यवाद। मूल प्रश्न में मामले में कोई संघर्ष नहीं है क्योंकि फ़ाइल ए बदल नहीं है और प्रतिबद्ध है। मुझे पता है कि मैं एक छेड़छाड़ कर सकता हूं, लेकिन जब भी मैं विलय कर रहा हूं, मैं इसे हर बार नहीं करना चाहता हूं। विशेष रूप से जब यह पिछले संस्करणों में अच्छी तरह से काम किया। –

+0

आप "कस्टम एक्शन" का उपयोग करके ऐसे सभी परिचालनों को स्वचालित भी कर सकते हैं, कृपया संपादन देखें – Arvin

0

इस question के लिए निम्न जवाब मेरे लिए काम किया की नकल की है।

"आप मैन्युअल .git/MERGE_HEAD नष्ट कर सकते हैं और Git है कि आप बस किसी मर्ज कर रहे थे बताने के लिए सक्षम नहीं होगा। यह आप में संशोधन पिछले अपने सूचकांक में परिवर्तन के साथ प्रतिबद्ध दूँगी सामान्य की तरह। "