2012-10-18 15 views
65

मेरे पास एक भंडार है जिसे मैं बिटबकेट और गिटहब में धक्का देना चाहता हूं। मेरे भंडार दोनों के लिए होस्ट करना महत्वपूर्ण है।एक परियोजना के लिए एक ही समय में बिटबकेट और गिटहब का उपयोग कैसे करें?

क्या गिट में ऐसा करने का कोई तरीका है?

+3

यह बहुत उपयोगी लगता है। खासकर जब एक भंडार नीचे है। फिलहाल बिटबकेट नीचे है और मैं मूल रूप से अपना काम करने में सक्षम नहीं हूं। – imranal

उत्तर

82

आप गिट के साथ कई रिमोट रिपॉजिटरीज़ का उपयोग कर सकते हैं। लेकिन मुझे विश्वास है कि आपको अपने दो रिमोट्स में अलग-अलग धक्का देना होगा।

उदाहरण के लिए, यदि आपके परियोजना वर्तमान में GitHub के लिए अंक, आप अपने वर्तमान दूरस्थ भंडार github के नाम बदल सकते हैं:

$ git remote rename origin github 

बाद आप एक अन्य दूरदराज के डेटा संग्रह स्थान जुड़ सकते हैं, कहते हैं कि bitbucket:

$ git remote add bitbucket [email protected]:your_user/your_repo.git 

अब जिथब या बिटबकेट पर संबंधित शाखा में परिवर्तन को धक्का देने के लिए आप यह कर सकते हैं:

$ git push github HEAD 
$ git push bitbucket HEAD 

एक ही नियम खींच करने के लिए लागू होता है: क्या आप से खींचने के लिए चाहते हैं जो दूरदराज के निर्दिष्ट करना होगा:

$ git pull github your_branch 
$ git pull bitbucket your_branch 
25

हाँ, आप ऐसा कर सकते हैं। आपको दो बार धक्का नहीं देना है, बल्कि रिमोट रिपोजिटरी दोनों को धक्का देना है। इससे पहले कि मैंने इसे यहां कैसे किया है, उससे पहले भी यही समस्या थी। Git: Push to/Pull from Both Github and Bitbucket

+1

अच्छी पोस्ट! यदि आप कर सकते हैं तो यहां एक सारांश शामिल करना अच्छा होगा। – OneHoopyFrood

17

कुछ आसान समाधान।

एकाधिक रिमोट धक्का दिया (और प्राप्त किए गए) स्वतंत्र रूप से

यह सबसे आसान चारों ओर अपने सिर, लेकिन बनाए रखने के लिए सबसे प्रयास प्राप्त करने के लिए है।

$ cd myproject 
$ git remote add bitbucket ssh://[email protected]/user/myproject.git 
$ git push bitbucket master 

सीधे आगे नहीं:

हम अपने नए दूरस्थ जोड़कर बाहर शुरू? निश्चित रूप से हर बार जब हम किसी भी परिवर्तन के लिए प्रतिबद्ध के अलावा, हम दोनों हमारे मूल "मूल" और हमारे नए दूरस्थ "bitbucket" करने के लिए पुश करने के लिए की जरूरत है:

$ git push origin master 
$ git push bitbucket master 

नहीं एक बड़े पैमाने पर भूमि के ऊपर है, लेकिन मुझे यकीन है कि इस पर घिस जाएगा पहर। या आप एक 'उपनाम gpob = "गिट पुश मूल मास्टर & & गिट पुश बिटबकेट मास्टर" बना सकते हैं।

एकाधिक यूआरएल के साथ एकल दूरस्थ धक्का दिया (और प्राप्त किए गए) लगातार

इस विधि के साथ, हम अपने मौजूदा दूरस्थ "मूल" के लिए एक अतिरिक्त URL जोड़ने के लिए जा रहे हैं:

$ cd myproject 
$ git remote set-url --add origin ssh://[email protected]/user/myproject.git 
$ git push origin master 
Everything up-to-date 
Everything up-to-date 

बहुत कम प्रयास है!

बेशक चांदी के अस्तर में बादल होता है, और इस मामले में, यह है कि हम एक साथ कई यूआरएल को धक्का दे सकते हैं, हम केवल मूल "मूल" से प्राप्त कर सकते हैं (आप इसे बदल सकते हैं, लेकिन यह बाहर है इस पोस्ट के लिए दायरा)।

अंत में, देखने के लिए जो रिमोट से लाना होगा: रूप में अच्छी तरह

$ git remote -v show 

मैं blogged about it

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