2009-10-30 16 views
13

कुछ संदर्भों के लिए: मैंने अभी उबंटू को अपग्रेड किया है जो मेरी मौजूदा गिटोसिस स्थापना को तोड़ दिया है (यहां देखें: bug #368895), और पैकेजों से गिटोसिस को फिर से इंस्टॉल किया है। अब मैं पुरानी गिटोसिस स्थापना से अपनी पूरी कॉन्फ़िगरेशन और रिपॉजिटरीज सेट करना चाहता हूं (जो अभी भी मौजूद है और इसे खींचा जा सकता है लेकिन अन्यथा टूटा हुआ है)।स्थानीय फाइल सिस्टम पर भंडार के साथ गिट-विलय

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

[email protected]:~/gitosis-admin-new$ git merge ../gitosis-admin-old/ 
fatal: '../gitosis-admin-old/' does not point to a commit 

... वहाँ है, जहां ~/gitosis-admin-old/ में Git संग्रह कर रहे हैं और ~/gitosis-admin-new/

मैं शायद जो बहुत लंबे समय तक है और अन्य खजाने के लिए भी ऐसा करने की जरूरत के लिए, जा रहा हूँ अधिक महत्वपूर्ण इतिहास, इसलिए प्रतिलिपि बनाना और एक विकल्प बनाना एक विकल्प नहीं है।

मैं क्या गलत कर रहा हूं? मैंने .git/HEAD को इंगित करने का प्रयास किया है जैसा कि मैं समझता हूं कि एक प्रतिबद्धता है, लेकिन यह काम नहीं करता है। क्या कोई यह समझा सकता है कि यह कैसे करें? धन्यवाद!

उत्तर

21

आप भंडार के साथ git pull उपयोग करने की आवश्यकता है, न कि git merge (जो शाखाओं के लिए है):

git pull ../gitosis-admin-old/ 

आप दूरस्थ में एक शाखा का चयन करने के विलय करने के लिए आवश्यकता हो सकती है, जैसे:

git pull ../gitosis-admin-old/ master 

यदि आपको केवल एक बार यह विलय करने की आवश्यकता है, तो git remote add का उपयोग jamessan answer में अनावश्यक काम है। दूसरी तरफ यदि आप रिमोट पर जा रहे हैं (एक से अधिक बार खींच रहे हैं), तो यह समाधान git pull <location> <branch> का उपयोग करने से बेहतर होगा।

+0

स्वीकृत; 'मास्टर' की वजह से जामसेन के जवाब पर एक हो जाता है! बहुत बहुत धन्यवाद :) –

3

आपको उस भंडार के लिए रिमोट बनाने की आवश्यकता है और फिर वहां से & विलय (या बस खींचें) लाने की आवश्यकता है।

git remote add admin-old file://$HOME/gitosis-admin-old 
git pull admin-old 
संबंधित मुद्दे