Git पुल के लिए पासवर्ड के साथ कमांड कैसे दर्ज करें?


140

मैं इस कमांड को एक लाइन में करना चाहता हूं:

git pull && [my passphrase]

यह कैसे करना है?


आप अपना पासफ़्रेज़ बदल कर इसे खाली कर सकते हैं: help.github.com/articles/working-with-ssh-key-passphrases
Julerate

1
यदि आप ssh एजेंट चलाते हैं, तो आप पासफ़्रेज़ में टाइप करने की आवश्यकता को रोक सकते हैं। पहली बार जब आप एक git पुल करते हैं, तो आप इसे अंतःक्रियात्मक रूप से करते हैं, और ssh एजेंट आपकी निजी कुंजी को याद रखेगा और आप बिना संकेत के git पुल चला सकते हैं।
टिम फाइन

जवाबों:


162

यह वही नहीं है जो आपने मांगा था, बल्कि http (s) के लिए:

  • आप पासवर्ड .netrc फ़ाइल (विंडोज़ पर _netrc) में डाल सकते हैं। वहाँ से इसे अपने आप उठाया जाएगा। यह 600 अनुमतियों के साथ आपके घर फ़ोल्डर में जाएगा।
  • आप सिर्फ रेपो को क्लोन कर सकते हैं https://user:pass@domain/repoलेकिन यह वास्तव में अनुशंसित नहीं है क्योंकि यह आपके उपयोगकर्ता को दिखाएगा / बहुत से स्थानों में पास करेगा ...
  • एक नया विकल्प क्रेडेंशियल सहायक का उपयोग करना है । ध्यान दें कि मानक क्रेडेंशियल हेल्पर का उपयोग करके क्रेडेंशियल्स को आपके स्थानीय कॉन्फ़िगरेशन में स्पष्ट पाठ में संग्रहीत किया जाएगा। विन्ड्रेड के साथ क्रेडेंशियल-हेल्पर का उपयोग खिड़कियों पर भी किया जा सकता है।

क्रेडेंशियल सहायक के लिए उपयोग उदाहरण

  • git config credential.helper store - साख को अनिश्चित काल के लिए स्टोर करता है।
  • git config credential.helper 'cache --timeout=3600'- 60 मिनट के लिए भंडार

Ssh- आधारित पहुँच के लिए, आप ssh एजेंट का उपयोग करेंगे जो ssh कुंजी प्रदान करेगा जब जरूरत होगी। इसके लिए आपके कंप्यूटर पर कुंजी बनाने, रिमोट सर्वर पर सार्वजनिक कुंजी संग्रहीत करने और प्रासंगिक कीस्टोर के लिए निजी कुंजी जोड़ने की आवश्यकता होगी।


1
क्या आप SSH भाग पर विस्तार से बता सकते हैं? मैं एक EC2 उदाहरण को कॉन्फ़िगर कर रहा हूं, और मैं चाहूंगा कि यह मेरे पासवर्ड और AWS ऑटोस्केल का अनुरोध किए बिना खींच ले। यह सार्वजनिक / निजी योजना एक अच्छे समाधान की तरह दिखती है।
पेड्रो डूसो

1
@PedroDusso लगता है कि यह धागा आपके बाद क्या है
eis

2
मैंने तैनाती कुंजी तंत्र का उपयोग किया, जो एक अच्छा समाधान प्रतीत होता है। धन्यवाद!
पेड्रो डूसो

129

मुझे कमांड लाइन पर एक https कनेक्शन के लिए क्रेडेंशियल्स की आपूर्ति करने का एक तरीका मिला। आपको पुल खींचने के लिए पूरा URL निर्दिष्ट करना होगा और वहां क्रेडेंशियल्स को शामिल करना होगा:

git pull https://username:password@mygithost.com/my/repository

आपको पहले क्रेडेंशियल्स के साथ रिपॉजिटरी क्लोन करने की आवश्यकता नहीं है, इसका मतलब है कि आपकी क्रेडेंशियल्स अंत नहीं हैं .git/config। (लेकिन सुनिश्चित करें कि आपका शेल आपको धोखा नहीं देता है और कमांड लाइन को इतिहास फ़ाइल में संग्रहीत करता है।)


पासवर्ड की आवश्यकता नहीं है, और यह पासवर्ड लिखने के लिए असुरक्षित है
उल्का

क्या यह उन चीजों में से एक नहीं है जिन्हें मैंने स्वीकृत उत्तर में सूचीबद्ध किया है, पहले से ही 2012 में?
eis

8
@ आईस: बिल्कुल नहीं। मुद्दा यह है कि आपको उस URL के साथ रिपॉजिटरी को क्लोन करने की आवश्यकता नहीं है जिसमें क्रेडेंशियल्स शामिल हैं, लेकिन फिर भी क्रेडेंशियल्स वाले URL से खींच सकते हैं । इसका प्रभाव यह है कि क्रेडेंशियल्स .it / config फ़ाइल में समाप्त नहीं होते हैं।
होल्गेरो

5
यदि आप :passwordभाग को छोड़ देते हैं , तो आपको एंटर करने के बाद पासवर्ड के लिए कहा जाएगा। इस तरह, आपका पासवर्ड बैश इतिहास में सहेजा नहीं जाएगा।
मथायस फिशर

1
हां @PramodGarg का उपयोग करें - git पुल उपयोगकर्ता नाम: password@mygithost.com/my/repository.git शाखा
PAVITRA

39

सीधे सवाल का जवाब नहीं देता है, लेकिन मुझे यह सवाल तब मिला, जब मूल रूप से किसी दूरस्थ सर्वर पर खींचने के दौरान , मूल रूप से, पासवर्ड को हर बार फिर से दर्ज नहीं करने का तरीका खोजा जाता है

ठीक है, gitआप समय की एक सीमित राशि के लिए अपनी साख को कैश करने की अनुमति देता है। यह अनुकूलन योग्य है git configऔर यह पृष्ठ इसे बहुत अच्छी तरह समझाता है:

https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux

किसी टर्मिनल में, चलाएं:

$ git config --global credential.helper cache
# Set git to use the credential memory cache

कैश टाइमआउट को कस्टमाइज़ करने के लिए, आप यह कर सकते हैं:

$ git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after 1 hour (setting is in seconds)

आपके क्रेडेंशियल्स को तब अनुरोधित राशि के लिए मेमोरी में संग्रहीत किया जाएगा।


5

ध्यान दें कि जिस तरह से git क्रेडेंशियल हेल्पर "स्टोर" Git 2.5+ (Q2 2014) के साथ अनएन्क्रिप्टेड पासवर्ड में बदलाव करेगा । जूनियो सी हमानो ( ) द्वारा प्रतिबद्ध 17c7f4d
देखेंgitster

credential-xdg

storeनिर्दिष्ट किए जाने पर XDG कॉन्फ़िगरेशन फ़ाइल स्थानों को सम्मानित करने के लिए क्रेडेंशियल हेल्पर के बैकएंड के नमूने को " " टवीक करें।

डॉक्टर अब कहते हैं:

यदि निर्दिष्ट नहीं है:

  • से ~/.git-credentialsऔर $XDG_CONFIG_HOME/git/credentials, और के लिए क्रेडेंशियल खोजे जाएंगे
  • क्रेडेंशियल्स को लिखा जाएगा ~/.git-credentialsयदि यह मौजूद है, या $XDG_CONFIG_HOME/git/credentialsयदि यह मौजूद है और पूर्व नहीं है।

0

नीचे cmd काम करेगा अगर हमारे पास @ पासवर्ड नहीं है: git pull https://username:pass@word@mygithost.com/my/repository यदि आपके पास पासवर्ड में @ है तो इसे% 40 से बदलें जैसा कि नीचे दिखाया गया है: git pull https://username:pass%40word@mygithost.com/my/repository

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