GitLab में एक मौजूदा git प्रोजेक्ट आयात करें?


147

मेरे पास Gitlab इंस्टॉलेशन का एक खाता है जहां मैंने रिपॉजिटरी "ffki-startseite" बनाया

अब मैं git://freifunk.in-kiel.de/ffki-startseite.gitसभी रिपीट और शाखाओं के साथ उस रिपॉजिटरी में रिपॉजिटरी को क्लोन करना चाहता हूं , इसलिए मैं अपने दायरे में इस पर काम करना शुरू कर सकता हूं।

मैं इसे कैसे आयात कर सकता हूं?


3
गिटलैब की एक नई विशेषता, प्रोजेक्ट बनाएं और फिर प्रोजेक्ट-पेज पर जाएं। यहां आपको बेसिक निर्देश दिखाई देंगे।
मार्टिनेज वैन वीज़ेल


बुनियादी निर्देश गितलब के नए संस्करणों में चले गए हैं, क्या कोई भी जो उन्हें कॉपी कर सकता था उन्हें यहां कॉपी किया गया था?
जदेवरा

जवाबों:


156

मैं अपने कंप्यूटर पर स्थानीय रूप से चलने वाले निम्न आदेशों के माध्यम से सभी कमिट, शाखाओं और टैग के साथ अपने प्रोजेक्ट को पूरी तरह से निर्यात करने में सक्षम था :

मेरे उदाहरण को समझाने के लिए, मैं https://github.com/raveren/kint का उपयोग उस स्रोत भंडार के रूप में करूँगा जिसे मैं gitlab में आयात करना चाहता हूँ। मैंने gitlab में पहले से ही Kint(नामस्थान के तहत raveren) नाम की एक खाली परियोजना बनाई है और इसने मुझे बताया कि नई बनाई गई परियोजना का http git url है http://gitlab.example.com/raveren/kint.git

आदेश OS अज्ञेयवादी हैं।

एक नई निर्देशिका में:

git clone --mirror https://github.com/raveren/kint
cd kint.git
git remote add gitlab http://gitlab.example.com/raveren/kint.git
git push gitlab --mirror

अब यदि आपके पास स्थानीय रूप से क्लोन किया हुआ रिपॉजिटरी है जिसे आप नए रिमोट के साथ उपयोग करना चाहते हैं, तो बस निम्नलिखित कमांड चलाएं *:

git remote remove origin
git remote add origin http://gitlab.example.com/raveren/kint.git
git fetch --all

* यह मानता है कि आपने अपने दूरस्थ गुरु का नाम नहीं बदला है origin, अन्यथा, इसे दर्शाने के लिए पहले दो पंक्तियों को बदलें।


1
यह मुझे त्रुटि देता है: रिमोट: गिटलैब: आपको इस परियोजना पर एक संरक्षित शाखा को धक्का कोड को बाध्य करने की अनुमति नहीं है। करने के लिए 10.0.100.89:8496/project/james-project.git ! [रिमोट
रिजेक्टेड

4
मुझे इसे प्राप्त करने के लिए सेटिंग्स -> रिपॉजिटरी में संरक्षित शाखाओं को बंद करना पड़ा।
जेम्स हिर्शोर्न

मेरा प्रश्न देखें कि आप क्यों इस्तेमाल करेंगे
मार्टिज़न वैन

108

नए gitlab रिमोट को अपने मौजूदा रिपॉजिटरी में जोड़ें और पुश करें:

git remote add gitlab url-to-gitlab-repo
git push gitlab master

मैं बल के साथ यह पुश करने के लिए किया था, क्योंकि मैं पहले से ही gitLab में आसपास fiddled: git push gitlab master -f। अब मैं अपने नए GitLab में सभी कॉमेट्स के साथ पूरी रेपो है;) धन्यवाद
rubo77

19
क्या आपको दर्पण करने की आवश्यकता नहीं है? यदि आपके पास गुरु के अलावा अन्य शाखाएँ हों तो क्या होगा?
slhck

7
हाँ, कर ओपी पता चलता है के रूप में करके, आप सभी शाखाओं (मास्टर को छोड़कर) और टैग खो
raveren

जब आप प्रोजेक्ट बनाते हैं तो Gitlab प्रोजेक्ट आयात URL से दूरस्थ रेपो को लोड करेगा। जिसमें svn repos आयात करने के निर्देश शामिल हैं।
रिकोफोसुसा

1
git Remote add gitlab url-to-gitlab-repo git push gitlab master --mirror
सौरभ

23

सभी बैग और शाखाएं रखने के लिए

बस इस कमांड को ए में चलाएं existing Git repository

cd existing_repo
git remote rename origin previous-hosts
git remote add gitlab git@git.hutber.com:hutber/kindred.com.git
git push -u gitlab --all
git push -u gitlab --tags

सभी शाखाओं की नकल न करें
Martijn van Wezel

19

यहाँ गीतालाब द्वारा दिए गए चरण हैं:

cd existing_repo
git remote rename origin old-origin
git remote add origin https://gitlab.example.com/rmishra/demoapp.git
git push -u origin --all
git push -u origin --tags

यह केवल मास्टर और अन्य शाखाओं को आगे नहीं
बढ़ाएगा

18

यह नए स्थान के लिए एक मूल चाल है। मैं इस क्रम को सभी ते समय का उपयोग करता हूं। --Bare के साथ कोई स्रोत फ़ाइलें नहीं देखी जाएंगी।

गेट बैश खोलें।
रिपॉजिटरी का एक नंगे क्लोन बनाएं।

git clone --bare https://github.com/exampleuser/old-repository.git

मिरर-पुश टू द न्यू रिपॉजिटरी।

cd old-repository.git

git push --mirror https://github.com/exampleuser/new-repository.git

चरण 1 में आपके द्वारा बनाए गए अस्थायी स्थानीय भंडार को निकालें।

cd ../
rm -rf old-repository.git

दर्पण क्यों? Git का दस्तावेज़ीकरण देखें: https://git-scm.com/docs/git-push

- और सभी शाखाओं को पुश करें (यानी refs / हेड / के तहत refs); अन्य के साथ प्रयोग नहीं किया जा सकता है।

--mirror पुश करने के लिए प्रत्येक नामकरण के बजाय, निर्दिष्ट करता है कि सभी refs / के तहत refs / (जिसमें शामिल हैं लेकिन refs / heads /, refs / remotes /, और refs / टैग / तक सीमित नहीं है) को दूरस्थ रिपॉजिटरी में प्रतिबिंबित किया जाना चाहिए। नए बनाए गए स्थानीय रीफ़ को दूरस्थ छोर पर धकेल दिया जाएगा, स्थानीय रूप से अपडेट किए गए रीफ़ को दूरस्थ छोर पर अद्यतन किया जाएगा, और हटाए गए रीफ़ को दूरस्थ छोर से हटा दिया जाएगा। यह डिफ़ॉल्ट है यदि कॉन्फ़िगरेशन विकल्प दूरस्थ..मिरर सेट है।


गिटलब के साथ भी काम करता है!
तौलिया

12

रेक गिटलैब: आयात: रिपोस बड़े पैमाने पर आयात के लिए अधिक उपयुक्त तरीका हो सकता है:

  • repos_path( /home/git/repositories/group/repo.git) के तहत नंगे भंडार की प्रतिलिपि बनाएँ । निर्देशिका नाम .gitकिसी समूह या उपयोगकर्ता नामस्थान के अंतर्गत समाप्त होना चाहिए और होना चाहिए।
  • Daud bundle exec rake gitlab:import:repos

स्वामी पहले व्यवस्थापक होगा, और यदि पहले से मौजूद नहीं है तो एक समूह बनाया जाएगा।

यह भी देखें: Gitlab में मौजूदा नंगे गिट भंडार कैसे आयात करें?


उन लोगों के लिए जो भ्रमित हो सकते हैं, नंगे रिपॉजिटरी आम तौर पर केंद्रीकृत स्थान (जैसे जीथूब) में भंडार है जिसमें रिपोजिटरी की जड़ में .गित फ़ोल्डर नहीं होता है। यह केवल एक सुविधाजनक विकल्प है यदि आपके पास सर्वर तक पहुंच है जहां नंगे भंडार संग्रहीत है। अन्यथा @ रेवरेन का उत्तर सबसे अच्छा विकल्प है।
टिंकरनोरसॉरजीग्यूई

4
git clone --mirror git@github.com:username/repo-name.git

git remote add gitlab ssh://git@servername.com/username/repo.git

git push -f --tags gitlab refs/heads/*:refs/heads/*

यह ssh पर करना बेहतर है, https काम नहीं करेगा


"https काम नहीं करेगा" यह आम तौर पर बात में नहीं है
Martijn van Wezel

यह वास्तव में एक बात है क्योंकि HTTP कनेक्शन को निष्क्रिय किया जा सकता है। जवाब के लिए धन्यवाद।
मीका

2

GitHub से GitLab के लिए मुद्दों सहित एक परियोजना को आगे बढ़ाते हुए, विकी, मील के पत्थर, लेबल, रिलीज़ नोट्स और टिप्पणियों पर अनुरोध करें

GitLab डॉक्स पर एक पूरी तरह से निर्देश है:

https://docs.gitlab.com/ee/user/project/import/github.html

tl; डॉ

  • सुनिश्चित करें कि कोई भी GitHub उपयोगकर्ता जिसे आप GitLab उपयोगकर्ताओं के लिए मैप करना चाहते हैं:

    • एक GitLab खाता जो GitHub आइकन का उपयोग करके लॉग इन किया है - या -
    • GitLab खाता एक ईमेल पते के साथ होता है जो GitHub उपयोगकर्ता के सार्वजनिक ईमेल पते से मेल खाता है
  • शीर्ष नेविगेशन बार से, + पर क्लिक करें और नई परियोजना चुनें।

  • आयात प्रोजेक्ट टैब चुनें और फिर GitHub चुनें।
  • अपने GitHub रिपॉजिटरी को सूचीबद्ध करने के लिए पहला बटन चुनें। GitLab एप्लिकेशन को अधिकृत करने के लिए आप github.com पर एक पृष्ठ पर पुनः निर्देशित कर रहे हैं।
  • Gitlabhq को अधिकृत करें पर क्लिक करें। आपको GitLab के आयात पृष्ठ पर वापस भेज दिया गया है और आपके सभी GitHub रिपॉजिटरी सूचीबद्ध हैं।
  • आयात करने के लिए कौन से रिपॉजिटरी का चयन करना जारी रखें।

लेकिन कृपया विवरण और हुक के लिए GitLab डॉक्स पृष्ठ पढ़ें !

(यह काफी नहीं है)


1

इस सुविधा पर Gitlab एक छोटा सा बग है। यदि आपका प्रोजेक्ट कोई बड़ा है तो आप विशेष रूप से समस्या निवारण करने में बहुत समय गंवा सकते हैं।

सबसे अच्छा समाधान बनाने / आयात उपकरण का उपयोग करना होगा, अपने उपयोगकर्ता नाम और पासवर्ड डालना न भूलें, अन्यथा यह कुछ भी आयात नहीं करेगा।

मेरे स्क्रीनशॉट का पालन करें

यहाँ छवि विवरण दर्ज करें

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