GitLab से GitHub तक git रिपॉजिटरी ट्रांसफर करें - क्या हम, कैसे और नुकसान (यदि कोई हो) कर सकते हैं?


204

जरूरत पड़ने पर एक GitLab से GitHub में रिपॉजिटरी ट्रांसफर कर सकते हैं। यदि हां, तो मैं वास्तव में ऐसा ही कैसे कर सकता हूं?

इसके अलावा, ऐसा करने या एहतियाती उपाय करने में कोई कमी है, जो मुझे ऐसा करने से पहले ध्यान में रखने की आवश्यकता है, ताकि मैं अंततः उन्हें GitHub में स्थानांतरित करने का निर्णय ले सकूं (क्योंकि इसमें इस समय और अधिक विशेषताएं हैं जो मुझे अपनी परियोजना के लिए आसान लग सकती हैं। )।

जवाबों:


210

आप उन्हें स्थानांतरित कर सकते हैं (बस एक GitHub रेपो में रिमोट जोड़कर और उन्हें धक्का देकर)

  • GitHub पर एक खाली रेपो बनाएँ
  • git remote add github https://yourLogin@github.com/yourLogin/yourRepoName.git
  • git push --mirror github

इतिहास वही रहेगा।

लेकिन आप एक्सेस कंट्रोल को ढीला कर देंगे (GitLab में परिभाषित टीमें आपके रेपो पर विशिष्ट एक्सेस अधिकारों के साथ)

यदि आप GitHub रेपो के https URL के साथ किसी भी समस्या का सामना कर रहे हैं:

The requested URL returned an error: 403

आपको बस अपना GitHub पासवर्ड दर्ज करना है, लेकिन ओपी सुझाव देता है:

फिर आपको इसे ssh तरीके से धकेलने की आवश्यकता हो सकती है। आप इसे यहां कैसे करें, इस बारे में अधिक पढ़ सकते हैं।

" पुश गेट टू रिटर्न रिटर्न एरर कोड 403 घातक: HTTP अनुरोध विफल "।


धन्यवाद वॉन - आपके उत्तर ने मेरे लिए चाल चली। मैंने आपके उत्तर में सटीक git रिमोट ऐड cmd के बारे में थोड़ा सा जोड़ा है और ज़रूरत पड़ने पर चीजों को ssh तरीके से धकेल रहा हूँ। आशा है कि ठीक है।
बोधिसत्व

@boddhisattva यह ठीक है, लेकिन मुझे लगता है कि आपका संपादन अस्वीकार कर दिया गया था। मैंने इसे स्वयं उत्तर में वापस जोड़ दिया है।
VonC

5
मुद्दों और लेबल आयात करने पर कोई टिप्पणी? क्या कोड के अलावा और कुछ भी पुल और पुश द्वारा आयात किया जा सकता है? धन्यवाद।

@YakovK मुझे पीआर और मुद्दों को ध्यान में रखते हुए एक स्वचालित प्रक्रिया के बारे में पता नहीं है। कम से कम, गिटहब में पीआर शाखाएं हैं (देखें stackoverflow.com/a/30542987/6309 ), ताकि इसे आयात किया जा सके।
वॉन

1
@kiki यह सभी स्थानीय शाखाओं को आगे बढ़ाएगा , लेकिन यदि आपका स्थानीय रेपो स्वयं एक क्लोन है, तो इसका केवल मास्टर ही होगा क्योंकि इसकी डिफ़ॉल्ट स्थानीय जाँच शाखा है। उपयोग करने से पहले, आपको सबसे पहले उनकी पुनरावर्ती दूरस्थ ट्रैकिंग शाखाओं के बाद अन्य स्थानीय शाखाएँ बनानी होंगी push --mirrorstackoverflow.com/a/18911322/6309 । यह भी देखें विकल्प पर उल्लेख किया stackoverflow.com/a/24099141/6309 (अंतिम वाक्य)
VonC

149

यह आयात रिपॉजिटरी सुविधा लॉगइन टू github.com, द्वारा बहुत आसान है

प्रोफाइल पिक्चर के साइड में आपको +बटन पर क्लिक करना है, उसके बाद विकल्प होगा import repository। आपको इस तरह का पेज मिलेगा। यहां छवि विवरण दर्ज करें आपके पुराने रिपॉजिटरी के क्लोन URL की आवश्यकता है जो आपके मामले में gitlab repo url है। फिर मालिक का चयन करें और फिर इस रेपो के लिए नाम टाइप करें और आयात बटन शुरू करने के लिए क्लिक करें।


33
यह सुपर सुविधाजनक है कि गिटहब ने इसे जोड़ा है। हालाँकि, यह काम नहीं करेगा यदि यह फ़ायरवॉल के पीछे एक आंतरिक GitLab है, जो GitLab के लिए एक बड़े उपयोग के मामले का प्रतिनिधित्व करता है।
अबल्टर

7
आयात विकल्प का उपयोग करके किसी और के लिए बस एक त्वरित नोट। मुझे काम करने के लिए GitLab पर MFA को अक्षम करना पड़ा।
डी-डे

2
यह ठीक काम करता है। स्वीकृत उत्तर से बहुत बेहतर
LnxSlck

अगर मैं शाखा आयात करना चाहता हूँ तो कैसे करें?
कोडरइरैन

1
आयातित रिपॉजिटरी को अब सार्वजनिक होना जरूरी नहीं है, क्योंकि जीथब ने निजी रिपॉजिटरी को मुफ्त में जोड़ दिया है।
श्रेय गर्ग


7

मुझे इसके विपरीत समस्या थी और आखिरकार कंपनी की नीति में बदलाव के कारण कंपनी को गितुब से गिटलब तक के सौ प्रतिनिधि स्थानांतरित करने के लिए अपनी स्वयं की बैश शेल स्क्रिप्ट बनानी पड़ी।
स्क्रिप्ट Gitlab API का उपयोग दूरस्थ रूप से रेपो बनाने के लिए करती है, और इसमें Github repo को धकेलती है। अभी तक कोई README.md फ़ाइल नहीं है, लेकिन श को अच्छी तरह से प्रलेखित किया गया है।
उसी तरह से किया जा सकता है जिस तरह से मैं कल्पना करता हूं। आशा है कि यह मदद कर सकता है।
https://github.com/mahmalsami/migrate-github-gitlab/blob/master/migrate.sh


2

यदि आपके पास GitLab पर MFA सक्षम है, तो आपको रिपॉजिटरी सेटिंग्स / रिपॉजिटरी में जाना चाहिए -> कुंजियों की तैनाती करें और एक बनाएं, फिर GitHub पर रेपो आयात करते समय इसे लॉगिन के रूप में उपयोग करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.