2011-01-24 16 views
207

से खींचते समय रिमोट चेंज का उपयोग करके संघर्षों को हल करें। मैं अपने गिटहब रेपो से कोड को अपने सर्वर पर खींचने की कोशिश कर रहा हूं, लेकिन खींच विलयों के कारण खींचने में विफल रहता है। मैं आखिरी पुल के बाद से अपने स्थानीय सर्वर पर होने वाले किसी भी बदलाव को नहीं रखना चाहता हूं।गिट रिमोट

तो क्या कोई तरीका है कि मैं गिटहब में जो भी संस्करण है, उसे विवाद के बारे में परेशान करने के बजाय गिट को ओवरराइट करने के लिए मजबूर कर सकता हूं?

+0

डुप्लिकेट? http://stackoverflow.com/questions/4779715/error-when-running-git-pull-origin-master/4779723#4779723 –

+3

@nvm: नहीं। यह वास्तविक मर्ज विवादों के बारे में है, अनचाहे फ़ाइलों को नहीं जिन्हें ओवरराइट किया जाएगा। – Cascabel

उत्तर

354

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

# fetch from the default remote, origin 
git fetch 
# reset your current branch (master) to origin's master 
git reset --hard origin/master 

मैं व्यक्तिगत रूप से अपने वर्तमान प्रमुख पहली बार में एक बैकअप शाखा बनाने का सुझाव देते हैं, इसलिए है कि यदि आप जानते हैं कि यह एक बुरा विचार था, आप नहीं खोया ट्रैक: आपको बस इतना की जरूरत यह है।

:

दूसरी ओर, यदि आप उन प्रतिबद्ध रखने के लिए और यह देखने के लिए जैसे कि आप मूल के साथ मिला दिया है, और कारण मर्ज केवल मूल से संस्करणों को बनाए रखना चाहते हैं, तो आप ours मर्ज रणनीति का उपयोग कर सकते

# fetch from the default remote, origin 
git fetch 
# create a branch at your current master 
git branch old-master 
# reset to origin's master 
git reset --hard origin/master 
# merge your old master, keeping "our" (origin/master's) content 
git merge -s ours old-master 
+0

गिट कमांड के दूसरे ब्लॉक में .. क्या दूसरी कमांड के बाद 'गिट फ़ेच मूल' होना चाहिए? –

+0

@ डेविड: हाँ, आपको किसी बिंदु पर मूल से प्राप्त करना चाहिए। क्षमा करें, मैंने इसे अंतर्निहित माना। – Cascabel

+1

ऐसा कुछ भी नहीं है जिसे मेरे और गिट की बात आती है ;-)। गंभीरता से हालांकि, एक लाख धन्यवाद। आपका जवाब वही है जो मैं ढूंढ रहा था। –

82

आप या तो एनवीएम द्वारा निर्देशित डुप्लिकेट लिंक से उत्तर का उपयोग कर सकते हैं।

या आप अपने परिवर्तनों का उपयोग करके संघर्ष को सुलझाने सकते हैं (लेकिन आपके कुछ परिवर्तनों की अगर वे दूरदराज के संस्करण के साथ संघर्ष नहीं है रखा जा सकता है):

git pull -s recursive -X theirs 
+2

मेरे लिए काम नहीं कर रहा प्रतीत होता है। मुझे गिट गिट संस्करण 1.5.6.5 का उपयोग करके "त्रुटि: अज्ञात स्विच 'एक्स' मिलता है। क्या मुझे अस्थिर संस्करण में अपग्रेड करने की आवश्यकता है? –

+0

इसके अलावा, एंटोनी, यदि आप सब कुछ का मूल संस्करण लेना चाहते हैं, न केवल विवादित सामग्री, तो आप देख सकते हैं - मेरा जवाब देखें। – Cascabel

+0

और अंत में, एनवीएम का जवाब डुप्लिकेट नहीं है। यह मर्ज विवादों (मतभेदों के साथ दोनों पक्षों पर ट्रैक की गई सामग्री) का एक उदाहरण नहीं था, बल्कि एक विलय जो अनचाहे सामग्री को ओवरराइट करेगा। – Cascabel

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