2016-07-07 9 views
64

मैं गिट सीख रहा हूं, और मैं गिट समुदाय पुस्तक का अनुसरण कर रहा हूं।मेरी गीथब रिपोजिटरी से फ़ाइलों को खींचने की कोशिश कर रहा है: "असंबद्ध इतिहासों को मर्ज करने से इंकार कर रहा है"

पहले (लंबे समय पहले) मैंने कुछ फाइलों के साथ गीथूब पर एक सार्वजनिक भंडार बनाया था। अब मैंने अपने वर्तमान कंप्यूटर पर एक स्थानीय गिट भंडार स्थापित किया है, और कुछ फाइलें की हैं। तब मैं अपने Github पृष्ठ के लिए एक रिमोट की ओर इशारा करते कहा:

[[email protected] c]# git remote add learnc https://github.com/michaelklachko/Learning-C 

यही लग रहा था सफल होने के लिए:

[[email protected] c]# git remote show learnc 
* remote learnc 
    Fetch URL: https://github.com/michaelklachko/Learning-C 
    Push URL: https://github.com/michaelklachko/Learning-C 
    HEAD branch: master 
    Remote branch: 
    master tracked 
    Local ref configured for 'git push': 
    master pushes to master (local out of date) 

अब मैं अपने कंप्यूटर के लिए मेरे Github रेपो से फ़ाइलों को डाउनलोड करना चाहते हैं। मैंने यह किया:

[[email protected] c]# git fetch learnc 
[[email protected] c]# git merge learnc/master 
warning: refname 'learnc/master' is ambiguous. 
Already up-to-date. 

हालांकि, मुझे अपनी स्थानीय निर्देशिका में कोई नई फाइल नहीं दिखाई देती है। मैं उन्हें कैसे प्राप्त कर सकता हूं?

मैं भी ऐसा करने की कोशिश की: Btw

[[email protected] c]# git pull learnc master 
From https://github.com/michaelklachko/Learning-C 
* branch   master  -> FETCH_HEAD 
fatal: refusing to merge unrelated histories 

, स्थानीय रूप से मैं मास्टर शाखा पर हूँ (कोई अन्य शाखाएं हैं):

[[email protected] c]# git status 
On branch master 
nothing to commit, working directory clean 
+2

जब आप अपने स्थानीय रेपो की स्थापना की, तो आप अपने Github रेपो क्लोन था या सिर्फ 'Git init' किया था? बाद के मामले में उन repos असंबंधित हैं (कोई आम काम नहीं है) और आप उन्हें मर्ज नहीं कर सकते हैं (पुल fetch + विलय है)। – Paul

+0

मैंने गिट इनिट किया था। तो क्या मुझे इसे ठीक करने के लिए अपने गिथब रेपो को क्लोन करना चाहिए? – MichaelSB

+0

आप अपने गीथब रेपो को क्लोन कर सकते हैं और इसके साथ काम जारी रख सकते हैं, लेकिन यह अभी भी अलग रेपो होगा। क्या आप दो असंबद्ध इतिहास एक साथ मर्ज करना चाहते हैं? – Paul

उत्तर

134

--allow-unrelated-histories

max630 तरह की कोशिश करो टिप्पणी की, या यहां बताया गया है Git refusing to merge unrelated histories

+1

जैसा कि [github रिलीज नोट्स] पर उल्लेख किया गया है (https://github.com/git/git/blob/master/Documentation/RelNotes/2.9.0.txt # एल 58-एल 68) – systemaddict

+1

बिल्कुल सही! कोई अन्य समाधान काम नहीं कर रहा था। – Siddharth

45
git checkout master 
git merge origin/master --allow-unrelated-histories 

हल संघर्ष, तो

git add -A . 
git commit -m "Upload" 
git push 
7

अगर वहाँ पर्याप्त इतिहास एक छोर (उर्फ अगर यह सिर्फ एक रीडमी GitHub अंत पर प्रतिबद्ध है) पर नहीं है, मैं अक्सर यह आसान मैन्युअल रूप से करने के लिए रीडमी कॉपी करने के लिए लगता है मेरा स्थानीय रेपो और मेरा संस्करण नया रूट प्रतिबद्ध बनाने के लिए git push -f करें।

मुझे लगता है कि यह थोड़ा कम जटिल है, एक अस्पष्ट ध्वज को याद रखने की आवश्यकता नहीं है, और इतिहास को थोड़ा क्लीनर रखता है।

15

जबकि मैं सभी लोगों के काम के मुद्दों को अनवरोधित करने के लिए हूं, मुझे नहीं लगता कि "पुश - फोर्स" या "--allow_unrelated_histories" को नए उपयोगकर्ताओं को सामान्य समाधान के रूप में सिखाया जाना चाहिए क्योंकि वे एक भंडार के लिए असली विनाश कर सकते हैं जब कोई उन्हें समझने के बिना उपयोग करता है कि क्यों चीजें पहले स्थान पर काम नहीं कर रही हैं।

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

जब आप नया ऑनलाइन भंडार बनाते हैं, तो एक विकल्प "रीडमी के साथ इस भंडार को आरंभ करें" विकल्प है। यदि आप ठीक प्रिंट पढ़ते हैं, तो यह कहता है "अगर आप मौजूदा भंडार आयात कर रहे हैं तो इस चरण को छोड़ दें।"

आपने उस बॉक्स को चेक किया होगा। या इसी तरह, आपने प्रारंभिक धक्का का प्रयास करने से पहले ऑनलाइन एक जोड़ा/प्रतिबद्ध किया। क्या होता है कि आप प्रत्येक स्थान पर एक अद्वितीय प्रतिबद्धता इतिहास बनाते हैं और उन्हें Nevermore के उत्तर में उल्लिखित विशेष भत्ता के बिना सुलझाया नहीं जा सकता है (क्योंकि गिट नहीं चाहता कि आप इस तरह से काम करें)। आप यहां उल्लिखित कुछ सलाह का पालन कर सकते हैं, या अधिक बस उस विकल्प को तब न जांचें जब अगली बार आप कुछ स्थानीय फाइलों को एक नए नए रिमोट से जोड़ना चाहते हैं; उस प्रारंभिक धक्का के लिए रिमोट क्लीन को बनाए रखना।

संदर्भ: Git + हब के साथ पहला अनुभव यह एक ही समस्या में चलाने के लिए और समझने के लिए कि क्या हुआ था और यही कारण है कि सीखने की एक बहुत कुछ करने के लिए किया गया था।

0

जब आप गलत नाम करने के लिए दूरस्थ url सेट तुम भी इस त्रुटि देखेंगे! जांचें कि आपने रिमोट यूआरएल सही तरीके से सेट किया है।

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

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