एक निजी Github रेपो क्लोनिंग


226

मैं जिस प्रोजेक्ट पर काम कर रहा हूं, उसके लिए जीथब पर एक निजी भंडार है। अब तक मैंने केवल अपने होम डेस्कटॉप पर काम किया था, लेकिन मैंने अभी एक लैपटॉप खरीदा है, और इसे स्थापित करने की कोशिश कर रहा हूं ताकि मैं कंप्यूटर से प्रोजेक्ट पर काम कर सकूं और बदलावों को आगे बढ़ा सकूं।

मैंने लैपटॉप के लिए अपने Github खाते में एक नई SSH कुंजी जोड़ी, और एक सार्वजनिक परीक्षण रेपो में क्लोनिंग और बदलाव करने में सफल रहा जिसे मैंने सेट किया था। हालाँकि, मैं निजी रेपो का क्लोन नहीं बना सकता था। क्या कुछ विशेष है जो मुझे कमांड लाइन में एक निजी रेपो क्लोन करने के लिए करने की आवश्यकता है? क्या मुझे अपने लैपटॉप के लिए एक नया GitHub खाता स्थापित करने और एक सहयोगी के रूप में खुद को स्थापित करने की आवश्यकता है?

मैं जिस कमांड का इस्तेमाल करता था git clone git://github.com/myusername/reponame.git


3
स्थानीय रेपो को क्लोन करने के लिए आपने किस कमांड का उपयोग किया? आपको क्या त्रुटियां मिलीं?
रॉन डेवेरा

जवाबों:


171

निजी क्लोन URL फॉर्म लेते हैं git@github.com:username/repo.git- शायद आपको इसके git@बजाय उपयोग करने की आवश्यकता है git://?

git:// URL केवल पढ़े जाते हैं, और ऐसा लगता है कि निजी प्रतिनिधि इस प्रकार की पहुँच की अनुमति नहीं देते हैं।


हां - "https: //" के बजाय "git@github.com:" का उपयोग करके मेरी समस्या हल हो गई! वास्तव में मैंने एक ही समय में 2FA सक्षम किया लेकिन इसका इससे कोई लेना-देना नहीं था।
leo

148

यह मेरे लिए काम किया:

git clone https://username@github.com/username/repo_name

यह, ज़ाहिर है, गितुब में मेरी एसएसएच कुंजी जोड़ने के बाद था । यदि यह आवश्यक है, तो मैंने एक सेंटो सर्वर पर इसका उपयोग किया।


4
इसके लिए धन्यवाद। लेकिन मैं इस बात से बेखबर हूं कि यह काम क्यों करता है। पासवर्ड के लिए कभी संकेत नहीं दिया गया था। किसी भी तरह से https के माध्यम से क्लोन क्लोन करना चाहिए मेरी ssh कुंजियों को छूने? मैंने सोचा नहीं।
रीनहार्ड्ट

1
अच्छा लगा, इसने मुझे उबंटू में एक निजी रेपो डाउनलोड करने में सक्षम बना दिया।
नीनो ackopac

यह क्यों काम करता है लेकिन git@github.com: उपयोगकर्ता नाम / repo.git नहीं है?
दीमदीप

@diimdeep Git और अन्य उपकरण, अक्सर git का उपयोग करते हैं: दूरस्थ रिपॉजिटरी में फ़ाइलों तक पहुँचने के लिए प्रोटोकॉल। कुछ फ़ायरवॉल कॉन्फ़िगरेशन git: // URL को रोक रहे हैं, जो रिपॉजिटरी या डाउनलोड निर्भरता को क्लोन करने की कोशिश करते समय त्रुटियों की ओर जाता है। (उदाहरण के लिए कॉर्पोरेट फायरवॉल git को ब्लॉक करने के लिए "कुख्यात" हैं:) यदि आप इस समस्या में भाग लेते हैं, तो आप निम्नलिखित कमांड चलाकर: https: बजाय, के उपयोग को बाध्य कर सकते हैं: git config --global url। "https: // ".insteadOf git: //
charlchad

1
कुछ मामलों में, यदि आपको पासवर्ड के लिए संकेत दिया जाता है और फिर एक्सेस से वंचित किया जाता है, तो हो सकता है कि आपको अपने GitHub लॉगिन पासवर्ड के बजाय "व्यक्तिगत एक्सेस टोकन" प्रदान करने की आवश्यकता हो। [१] help.github.com/articles/which-remote-url-should-i-use [२] help.github.com/articles/…
डेविड विनीकी

71

यह मेरे लिए काम किया:

git clone https://username:password@github.com/username/repo_name.git

5
यह विशेष चरित्र पासवर्ड के साथ समस्याग्रस्त है, लॉग में अपना पासवर्ड छोड़ देता है और अब और काम नहीं करता है
pcnate

5
इसे आज़माएं - आपको अपना खाता पासवर्ड दर्ज करने के लिए प्रेरित किया जाएगा। इतिहास या लॉग के लिए पासवर्ड की कोई चिंता नहीं है। git clone https://username@github.com/username/repo_name.git
विनय

64

मैं इस मुद्दे पर कई बार मिला हूं और हर बार जब मैं इस पृष्ठ पर उतरा, हर बात की कोशिश की और असफल रहा!

यह है क्योंकि मैं 2FA सक्षम है !!!

Https://help.github.com/articles/which-remote-url-should-i-use/#when-2fa-is-enabled के अनुसार

यदि आपने दो-कारक प्रमाणीकरण सक्षम किया है  , या यदि आप एक संगठन का उपयोग कर रहे हैं जो एसएएमएल एकल साइन-ऑन का उपयोग करता है  , तो आपको  HTTPS Git के लिए अपना पासवर्ड दर्ज करने के बजाय एक व्यक्तिगत एक्सेस टोकन प्रदान करना होगा  ।

  1. इस लिंक को फॉलो करें और एक्सेस टोकन बनाएं
  2. git clone https://github.com/username/repo_name.git (डिफ़ॉल्ट गिट रेपो लिंक काफी अच्छा है!)
  3. अपना उपयोगकर्ता नाम दर्ज करें और पासवर्ड के रूप में एक्सेस टोकन का उपयोग करें !!

अपडेट करें:

  • यदि आपको कमांड लाइन में अपने एक्सेस टोकन को उजागर करने में कोई आपत्ति नहीं है, तो आप एक्सेस टोकन को उपयोगकर्ता नाम के रूप में भी चिपका सकते हैं, फिर एंटर दर्ज करें (पासवर्ड की कोई आवश्यकता नहीं है)।
  • बार-बार पहुंच टोकन को कॉपी और पेस्ट करना नफरत है?
    उपयोग करें git config credential.helper store(मशीन पर ऐसा न करें जिस पर आपको भरोसा न हो)

यदि आप विंडोज पर हैं, तो आप github.com/microsoft/Git-Credential-Manager-for-Windows स्थापित कर सकते हैं, फिर जब एक निजी रिपॉजिटरी को क्लोन कर रहे हैं, तो Github लॉगिन के साथ UI विंडो दिखाई देती है। यह आपको 2FA कोड भरने देगा। आपके Github क्रेडेंशियल्स को सुरक्षित रूप से संग्रहीत किया जाएगा।
जिरिक

18

Windows के लिए Git का उपयोग करना HTTPS url का उपयोग करना आसान है।

फिर एक खोल खोल दें git clone https://github.com/user/repo। संकेत दिए जाने पर उपयोगकर्ता नाम और पासवर्ड दर्ज करें। कोई SSH कुंजी सेटअप करने की आवश्यकता नहीं है।


1
मैं ssh को सेटअप न करने की सादगी से सहमत हूँ
Félix Gagnon-Grenier

अन्य टिप्पणियों से सहमत हों, केवल HTTPS url का उपयोग करके विंडोज या उबंटू पर सही काम करता है (116.04 पर कोशिश की गई)
greg_data

18

मेरे लिए समाधान था:

git clone https://myusername@restoftherepolink.git

यहां आपको रेपो का मालिक होने की आवश्यकता है लेकिन यदि आप नहीं हैं तो यह इस तरह से चलेगा

git clone https://myusername@github.com/ownersusername/repo_name.git

यदि आपके पास है2FA enabled :

  1. शीर्ष दाईं ओर प्रोफ़ाइल आइकन से सेटिंग पर जाएं या https://github.com/settings/profile पर जाएं
  2. सबसे नीचे वाले टैब पर जाएं या https://github.com/settings/tokens पर जाएं
  3. यहां अंतिम टैब खोलें व्यक्तिगत टोकन। और एक टोकन जेनरेट करें
  4. टोकन कॉपी करें और चलाएं git clone https://myusername@restoftherepolink.git

जब पासवर्ड के लिए कहा जाए तो उस टोकन को यहां रखें। यहाँ पर टोकन जनरेशन इमेज



8

मेरे पास एक कंपनी (निजी) खाता है और 2-फैक्टर-प्रमाणीकरण सक्षम है, इसलिए मुझे इसे नीचे काम करने के लिए कुछ पोस्ट को संयोजित करना पड़ा। (नीचे संक्षेप में बताएं तो यह उसी स्थिति वाले व्यक्ति के लिए उपयोगी हो सकता है)

Initially it was the Fatal Error. 
fatal: repository 'https:
...
remote: Repository not found.
fatal: repository 'https:

क्रेडेंशियल मैनेजर को स्थापित किया और यहां बताए अनुसार GIT को अपडेट किया: https://codeshare.co.uk/blog/how-to-solve-the-github-error-fatal-httprequestexception-encountered/

समस्या को हल नहीं किया गया क्योंकि समस्या को नीचे ले जाया गया जब मैंने क्लोन कमांड का उपयोग करने की कोशिश की निम्नानुसार है:

$ git clone https://<username>:<password>@github.com/<ORG_NAME>/<PROJECT-NAME>.git

remote: Invalid username or password.
fatal: Authentication failed for 'https://

मेरे पासवर्ड में $ प्रतीक था और किसी कारण से जीआईटी कमांड लाइन / जीआईटी बैश को यह पसंद नहीं आया। मैं यह देख सकता हूं कि त्रुटि वाले पाठ में $ प्रतीक नहीं था।

fatal: Authentication failed for 'https://<username>:<password-missing-$-symbol>@github.com/<ORG_NAME>/<PROJECT-NAME>.git'

मुझे इस साइट का संदर्भ देना था: https://git-scm.com/book/en/v2/Git-Tools-Credential-norage पर

कृपया ध्यान दें: यदि Windows क्रेडेंशियल प्रबंधक में आपके खाते के लिए एक गलत पासवर्ड संग्रहीत है, तो यह समस्या में भी जोड़ देगा। मैंने नीचे दिए गए चरण पर जाने से पहले इस तरह से गिथब क्रेडेंशियल को हटा दिया।

$ git config --global credential.helper cache
$ git clone https://<username>:<password>@github.com/<ORG_NAME>/<PROJECT-NAME>.git

अब विंडोज क्रेडेंशियल मैनेजर पॉप-अप हुआ। मैंने अपने उपयोगकर्ता नाम और पासवर्ड को टेक्स्ट-बॉक्स में टाइप किया (यह मेरे पासवर्ड को स्वीकार करता है जिसमें $ प्रतीक था) और मुझे 2-फैक्टर ऑथेंटिकेशन कोड के लिए प्रेरित किया। मैंने Google प्रमाणक से प्रमाणीकरण कोड टाइप किया और क्लोन पूरी तरह से शुरू हो गया।


डॉलर का प्रतीक $यूनिक्स में एक आरक्षित चरित्र है। यह एक वैरिएबल मान की पुनर्प्राप्ति की शुरुआत को $प्रतीक के नाम के साथ उस स्ट्रिंग के बराबर करता है ।
आइए मुझे इस बारे में

मेरे लिए Windows क्रेडेंशियल्स को हटाने से समस्या ठीक हो गई।
माइकल लारियोनोव

6

जब 2FA सक्षम के साथ निजी रिपॉज से क्लोनिंग करते हैं, तो एक सरल कदम है जिसे आपको पालन करने की आवश्यकता है

  1. अपने Git खाते पर जाएं
  2. सेटिंग्स-> डेवलपर सेटिंग्स-> पर्सनल एक्सेस टोकन पर जाएं
  3. जनरेट नया टोकन पर क्लिक करें
  4. आप चाहते हैं और कार्यात्मकताओं के साथ शीर्षक के साथ एक टोकन बनाएँ
  5. जब आप प्राइवेट रेपो का क्लोन बना रहे हैं, तो git क्लोन रिपॉनेम का उपयोग करके, अपना उपयोगकर्ता नाम दर्ज करने के बाद, पासवर्ड के रूप में व्यक्तिगत एक्सेस टोकन दें।

जब आप निजी रेपो के लिए प्रमाणीकरण विफल त्रुटि संदेश प्राप्त करते हैं तो उसी चरणों का पालन करें


5

मैक के जवाब के जवाब में, आप क्लिक करके, आपकी SSH क्लोन यूआरएल पर अपने GitHub रेपो पेज प्राप्त कर सकते हैं SSHपर You can clone with HTTPS, SSH, or Subversion.और यूआरएल को कॉपी।



3

एमके युंग के जवाब के अलावा: सुनिश्चित करें कि आप जहां भी आप रेपो के लिए तैनाती कुंजी को तैनात कर रहे हैं, उसके लिए सार्वजनिक कुंजी जोड़ दें, यदि आप 403 निषिद्ध प्रतिक्रिया प्राप्त नहीं करना चाहते हैं।


3

पहले यह सुनिश्चित कर लें कि आपके पास SSH कुंजी है या आप इसमें एक उत्पन्न करते हैं: https://help.github.com/articles/generating-ssh-keys/

एक बार जब आपके पास आपकी चाबी होगी, तो आपको इसे अपने github खाते में जोड़ना होगा: https://github.com/settings/ssh

विंडोज उपयोगकर्ताओं के लिए यह एक व्यवस्थापक के रूप में गिट बश चलाने के लिए उपयोगी है।

अब क्लोनिंग को अपना उपयोगकर्ता नाम और पासवर्ड डाले बिना, निजी रिपॉजिटरी (रेपो) के लिए काम करना चाहिए।


3

मुझे एक निजी रेपो क्लोनिंग के लिए एक गैर-संवादात्मक विधि की आवश्यकता थी।

इस मुद्दे से प्रेरित: https://github.com/github/hub/issues/1644

चरण 1।

Github डेवलपर सेटिंग में एक व्यक्तिगत एक्सेस टोकन बनाएं: https://github.com/settings/tokens

चरण 2।

git clone https://$token:x-oauth-basic@github.com/$username/$repo.git

1

यदि नए उपयोग किए गए कंप्यूटर में इस कमांड को चलाने वाले अलग-अलग क्रेडेंशियल हैं

git क्लोन https://github.com/username/reponame.git

सीधे काम नहीं करेगा। Git संग्रहीत क्रेडेंशियल्स का उपयोग करने का प्रयास करेगा और आपको उपयोगकर्ता नाम और पासवर्ड के लिए संकेत नहीं देगा। चूंकि क्रेडेंशियल्स बेमेल हैं, इसलिए git आउटपुट देगा Repository not foundऔर क्लोन ऑपरेशन विफल हो जाता है। जिस तरह से मैंने इसे हल किया था वह पुराने क्रेडेंशियल्स को हटाकर था, क्योंकि मैं अब उनका उपयोग नहीं करता हूं, और ऊपर उल्लिखित कमांड को फिर से चलाया और आवश्यक उपयोगकर्ता नाम और पासवर्ड दर्ज किया और निजी रेपो को क्लोन किया।


1

1) नीचे प्रारूप में उपयोगकर्ता नाम और पासवर्ड के साथ कमांड चलाने का प्रयास करें

git clone https://your_username:your_password@github.com/username/reponame.git

अब समस्या यह है कि दूसरों ने यहाँ उल्लेख किया है जब हमारे पासवर्ड में विशेष चरित्र है। जावास्क्रिप्ट में यूटीएफ -8 एन्कोडिंग के लिए विशेष वर्णों के साथ पासवर्ड बदलने के लिए नीचे दिए गए कोड का उपयोग करें।

console.log(encodeURIComponent('password@$123'));

अब विशेष वर्णों और रन कमांड के साथ एक के बजाय इस उत्पन्न पासवर्ड का उपयोग करें।

उम्मीद है कि इस मुद्दे को हल।



0

यदि आप सुनिश्चित हैं कि आपके पास 2FA सक्षम नहीं है, तो आपके पास रेपो तक पहुँचने की अनुमति है, और रेपो मौजूद है, यह संभव है कि आपका git@github.com किसी अन्य खाते से लॉग इन हो।

यह जाँचने के लिए कि आप क्या कर सकते हैं

ssh -T git@github.com

यदि यह इस समस्या को हल करने के लिए एक और खाता दिखाता है:

 ssh-add -D
 ssh-add ~/.ssh/your_rsa
 ssh -T git@github.com
 git clone git@github.com:<owner_name>/<repo_name>.git

यह प्रदर्शित करता है: unknown option -T। मेरा git संस्करण है2.7.4
bvdb

@bvdb मेरी माफी, यह होना चाहिए थाssh -T git@github.com
Kexin Lu

0

यदि आप इसे प्राप्त करना चाहते हैं Dockerfile, तो नीचे दी गई लाइनें मदद करती हैं।

ARG git_personal_token
RUN git config --global url."https://${git_personal_token}:@github.com/".insteadOf "https://github.com/"
RUN git clone https://github.com/your/project.git /project

तब हम नीचे तर्क के साथ निर्माण कर सकते हैं।

docker build --build-arg git_personal_token={your_token} .

0
git clone https://myusername:mygithubpassword@github.com/myusername/project.git

जब आप उस समय के लिए रेपो से निजी रेपो का उपयोग करने की कोशिश कर रहे हों, जिसके लिए आपको उपयोगकर्ता नाम और पासवर्ड पास करना होगा।


यह सुरक्षित नहीं है। क्लोन किए गए रेपो प्रदान की गई http लिंक को .it / config फाइल में संग्रहीत करता है। स्थानीय रेपो के लिए किए गए सभी कमिट को उपयोगकर्ता नाम और पासवर्ड की आवश्यकता के बिना रिमोट से धकेल दिया जा सकता है। जो वास्तव में खतरनाक है यदि आप एकमात्र उपयोगकर्ता नहीं हैं !!
तियान
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.