मैं यह कैसे सुनिश्चित कर सकता हूं कि Git मुझसे मेरे GitHub उपयोगकर्ता नाम और पासवर्ड के लिए नहीं पूछता है?


171

मैं GitHub पर एक रेपो के साथ काम कर रहा हूं और हर बार जब मैं कुछ पुश करने की कोशिश करता हूं, तो यह मेरे GitHub यूजरनेम और पासवर्ड के लिए पूछता है। मैं ऐसा नहीं चाहता।

मैंने आपके ईमेल को Git में सेट करने के निर्देशों की कोशिश की , अर्थात् Git वेरिएबल्स github.user और github.token की स्थापना की, लेकिन इससे कोई फर्क नहीं पड़ा।

मुझे समझ नहीं आता कि ऐसा क्यों हो रहा है।


आपको पासवर्ड को कैश करने की आवश्यकता है: help.github.com/articles/set-up-git#password-caching
पिओट्र यूस्विज़

जवाबों:


33

आपको एक ssh-agent की स्थापना करने की आवश्यकता है जिसके खिलाफ आपको केवल एक बार प्रमाणित करने की आवश्यकता है। एसओ पर यह जवाब एक हाउटो के लिए देखें ।


1
लेकिन यह समाधान ssh- पारिवारिक वाक्यांशों के लिए है। समस्या यह है कि "sit-agent" ट्रिगर नहीं करता है, मैं मान लेता हूं "git push" का उपयोग करता है। (मैंने पहले से ही ऐसा किया है, इसलिए मुझे पता है कि यह काम नहीं करता है।)
पिकार्डो

2
@picardo: मैंने ऐसा किया है, और यह वास्तव में काम करता है।
डेनिथ

213

आज भी इसी तरह की समस्या थी: मैंने अपने काम की नकल में चीजों को गड़बड़ कर दिया, इसलिए मैंने निर्देशिका का नाम बदलने और अपने प्रोजेक्ट को फिर से गीथब से क्लोन करने का फैसला किया। लेकिन ऐसा करने के बाद, मुझे किसी भी पुल / पुश अनुरोध को करने के लिए अपना पासवर्ड दर्ज करना था, इसके बजाय केवल एक बार पासफ़्रेज़ में प्रवेश करने के बजाय।

ऐसा इसलिए था क्योंकि आज मैंने प्रोजेक्ट को क्लोन करने के लिए https प्रोटोकॉल का उपयोग किया! यह जांचने के लिए कि आप किस प्रोटोकॉल का उपयोग कर रहे हैं

git config -l

और 'Remote.origin.url' से शुरू होने वाली लाइन को देखें।

प्रोटोकॉल स्विच करने के लिए:

git config remote.origin.url git@github.com:the_repository_username/your_project.git

the_repository_usernameऔर your_projectउपयुक्त रिपॉजिटरी नाम और उस रिपॉजिटरी के मालिक के साथ प्रतिस्थापित किया जाना चाहिए। यदि आप रिपॉजिटरी, या रिपॉजिटरी के मालिक का उपयोगकर्ता नाम अन्यथा रखते हैं, तो उपयोगकर्ता नाम आपका होगा।


5
इसने मेरे लिए काम किया। एक बात यह है कि url में मेरा उपयोगकर्ता नाम नहीं है, लेकिन रेपो पते के रूप में यह github पर दिखाई देता है:git@github.com:some-user/repo-name.git
B Seven

1
नोट: Google मुझे यहां लाया है। मैं remote.origin.urlhttps विधि के लिए सेट था और वहाँ भी नहीं देखा था httpsबनाम sshतरीके। इस URL ने मुझे स्पष्ट देखने में मदद की: help.github.com/articles/…
क्रिस के

क्या पासवर्ड दर्ज करने का भी कोई तरीका है?
जिशे

जीआईटी ज्ञान वाले लोगों के लिए क्यू: git config remote.origin.url ...ऊपर इस्तेमाल किए गए, बनाम के बीच कोई अंतर (या वरीयता) git remote set-url origin ...?
दरियास

मैं समझ नहीं पा रहा था कि इस तरह एक गलत उत्पत्ति को कैसे हटाया जाए। इसका उत्तर है:git remote rm origin
वैकलैंडो

30

यदि आप SSH के बजाय HTTPS का उपयोग कर रहे हैं, तो आप इसका अनुसरण कर सकते हैं:

  1. अपने दूरस्थ URL (Remote.origin.url) के साथ खोजें

    git config -l
    

    सर्जियो मॉर्स्टेबिलिनी को धन्यवाद

  2. आपका दूरस्थ URL इस तरह होगा: https: // {USERNAME} @ github.com / {USERNAME} / {REPONAME} .OG

  3. इस आदेश का पालन करें:

    git config remote.origin.url https://{USERNAME}:{PASSWORD}@github.com/{USERNAME}/{REPONAME}.git
    

2
मेरे उपयोगकर्ता नाम में ही है @, मेरे लिए काम नहीं किया।
कोडिंग_डॉट

लेकिन अगर यह (आप अपने ईमेल का उपयोग करने की जरूरत नहीं है) यह पूरी तरह से काम करता है! धन्यवाद।
किल्लाह

4
यदि आपके उपयोगकर्ता नाम में @ शामिल है, तो आपको उसे URL-एनकोड करना होगा। meyerweb.com/eric/tools/dencoder
Tim Bodeit

1
आपको सुरक्षा कारणों से अपना पासवर्ड छोड़ देना चाहिए।
जिग्मेंटस

3
खबरदार, पासवर्ड .git/configफ़ाइल में सादे पाठ में संग्रहीत किया जाएगा !
अमरो

26

मैं HTTPS का उपयोग करना पसंद करता हूं, मुझे ssh कीज़ सेट करने की तुलना में आसान और अधिक सुरक्षित लगता है।

HTTPS का उपयोग करके, आप gitub को रीमोट करने के लिए निम्नलिखित के साथ अपने उपयोगकर्ता नाम पूछने से रोक सकते हैं:

git config --global url."https://yourusername@github.com".insteadOf "https://github.com"

और आप कम से कम आवृत्ति के साथ अपने पासवर्ड के लिए पूछ सकते हैं:

git config --global credential.helper 'cache --timeout=28800'

जहां 28800 8 घंटे हैं। मैं इस सेटअप का उपयोग केवल एक बार अपना पासवर्ड दर्ज करने के लिए करता हूं, जब मैं अपना कार्य दिवस शुरू करता हूं।

उसके बाद आपके अंदर ये प्रविष्टियाँ होंगी ~/.gitconfig

[url "https://yourusername@github.com"]
    insteadOf = https://github.com

[credential]
    helper = cache --timeout=28800

स्रोत:

http://git-scm.com/docs/git-credential-cache

http://git-scm.com/docs/git-config


6

जब आप github के लिए ssh कुंजी सेट करते हैं, यदि यह आपकी डिफ़ॉल्ट कुंजी नहीं है, तो आपको अपने सेक्शन को जोड़ना होगा ~/.ssh/config

Host *github.com
    User git
    IdentityFile ~/.ssh/github_id_rsa

6

यदि आप HTTPS का उपयोग करके Windows पर हैं, तो Git क्रेडेंशियल स्टोर आज़माएं - यह आपके नाम और पासवर्ड को रखने के लिए Windows क्रेडेंशियल स्टोर का उपयोग करता है।

Windows Credential Store for Git
This application is a small helper app designed to follow the 
git credentials API as defined by the Git Documentation.

Installation
1. Download the git-credential-winstore.exe application
2. Run it! If you have GIT in your PATH, it should just work.

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


1
धन्यवाद। प्रोजेक्ट का नाम बदलकर Git-Credential-Manager-for-Windows कर दिया गया
माइकल एस।

5

इसके अलावा, यदि आप हर बार अपने पासवर्ड के लिए संकेत देना चाहते हैं, लेकिन सिर्फ आपका उपयोगकर्ता नाम नहीं है, तो आप रिमोट को HTTPS के रूप में एक उपयोगकर्ता नाम के साथ कॉन्फ़िगर करते हैं .. इस तरह ।।

git config remote.origin.url https://USERNAME@github.com/repo_owner/repo_name

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

इस तरह से मैं इसे पसंद करता हूं, क्योंकि मुझे दुनिया के साथ साझा करने से पहले अपना जिठब पासवर्ड टाइप करने के लिए मजबूर होना पसंद है।


2

यदि आप 2-फैक्टर ऑर्ट का उपयोग कर रहे हैं तो चीजें थोड़ी अलग हैं। चूँकि मुझे कहीं और एक अच्छा जवाब नहीं मिला, इसलिए मैं यहाँ एक स्टिक करूँगा ताकि शायद बाद में मुझे पता चले।

यदि आप 2-फैक्टर का उपयोग कर रहे हैं, तो उपयोगकर्ता नाम / पासवर्ड निर्दिष्ट करने से काम नहीं चलेगा - आपको पहुँच से वंचित कर दिया जाएगा। लेकिन आप एप्लिकेशन एक्सेस टोकन का उपयोग कर सकते हैं और आपके लिए इसे कैश करने के लिए गिट के क्रेडेंशियल हेल्पर का उपयोग कर सकते हैं। यहाँ प्रासंगिक लिंक हैं:

और मुझे याद नहीं है कि मैंने यह कहाँ देखा था, लेकिन जब आपसे आपका उपयोगकर्ता नाम पूछा जाता है - तो यह है कि जहाँ आप एप्लिकेशन एक्सेस टोकन चिपकाते हैं। फिर पासवर्ड को खाली छोड़ दें। मेरे मैक पर काम किया।


2

SSH का उपयोग करें

GitHub को पुश करते समय पासवर्ड पूछने के लिए रोकने के लिए, आदर्श रूप से आपको HTTPS URL ( ) के बजाय SSH ( git@github.com:...) का उपयोग करना चाहिए https://github.com/...और अपने GHHub खाते में अपनी SSH कुंजी जोड़ना चाहिए । देखें: मुझे किस दूरस्थ URL का उपयोग करना चाहिए?

गिटहब - एसएसएच के साथ क्लोन

एक विश्वसनीय सहायक

अन्यथा यदि आपको वास्तव में HTTPS का उपयोग करने की आवश्यकता है, तो GitHub में अपने GitHub पासवर्ड को कैश करने के लिए , आपको GitHub से बात करने के लिए अपने GitHub उपयोगकर्ता नाम और पासवर्ड को याद रखने के लिए Git को बताने के लिए एक क्रेडेंशियल सहायक का उपयोग करना चाहिए ।

  • मैक: git config --global credential.helper osxkeychain( osxkeychain helperआवश्यक है),
  • खिड़कियाँ: git config --global credential.helper wincred
  • लिनक्स और अन्य: git config --global credential.helper cache

.netrc

एक अन्य तरीका यह है कि अपने उपयोगकर्ता / पासवर्ड को विंडोज पर ~/.netrc( _netrcजैसे) कॉन्फ़िगर करें

machine github.com
login USERNAME
password PASSWORD

OAuth

परिवर्तनों को आगे बढ़ाने के लिए OAuth टोकन ( पर्सनल एपीआई टोकन ) का उपयोग करें , जैसे

git push https://4UTHT0KEN@github.com/foo/bar

सम्बंधित:


1

यदि आप Windows का उपयोग कर रहे हैं, तो भी आप उपयोग कर सकते हैं:

$ git config --global credential.helper wincred

आपको बस एक बार और साइन करना होगा और फिर git याद होगा।


1

उपयोगकर्ता नाम पूछना मेरे लिए कष्टप्रद है, लेकिन पासवर्ड मांगना अच्छा है क्योंकि यह सुनिश्चित करता है कि आप वास्तव में अपने परिवर्तनों के साथ सार्वजनिक रूप से जाना चाहते हैं ...

इसलिए मैं इसे सिर्फ अपने ".gitconfig" में जोड़ता हूं

[url "https://myusername@github.com"]
    insteadOf = https://github.com

0

यदि आप Windows पर हैं, तो Windows के लिए Git क्रेडेंशियल प्रबंधक का उपयोग करें ।

इस परियोजना में शामिल हैं :

  • Windows क्रेडेंशियल स्टोर में सुरक्षित पासवर्ड स्टोरेज
  • विजुअल स्टूडियो टीम सर्विसेज के लिए मल्टी-फैक्टर ऑथेंटिकेशन सपोर्ट
  • GitHub के लिए दो-कारक प्रमाणीकरण समर्थन
  • विजुअल स्टूडियो टीम सर्विसेज और GitHub के लिए व्यक्तिगत एक्सेस टोकन जेनरेशन और उपयोग समर्थन
  • Azure निर्देशिका द्वारा समर्थित Visual Studio टीम सेवाओं के लिए गैर-इंटरैक्टिव मोड समर्थन
  • टीम फाउंडेशन सर्वर के लिए केर्बरोस प्रमाणीकरण
  • निर्माण अनुकूलन के लिए वैकल्पिक सेटिंग्स

बस नवीनतम संस्करण डाउनलोड करें और इसे स्थापित करें।

कैसे इस्तेमाल करे

तुम नहीं। यह जादुई रूप से काम करता है जब क्रेडेंशियल्स की आवश्यकता होती है।

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