दिलचस्प पोस्ट
क्या एक संपत्ति को केवल सी # में स्थापित करने का एक तरीका है आर में हिस्टोग्राम को ओवरले सामान्य वक्र रेल पर रूबी में संग्रह मार्ग और सदस्य मार्ग के बीच का अंतर? चयन तत्व का डिफ़ॉल्ट मान सेट करने के लिए एनजी-विकल्प का उपयोग कैसे करें FIELDDATA डेटा बहुत बड़ी है मैं डेल्फी को कैसे पता करूं कि मैंने पहले ही एक अपवाद संभाला है? AppSettings को .config फ़ाइल से मूल्य मिलता है Base64: अंतरिक्ष उपयोग में सबसे खराब संभव वृद्धि क्या है? रिट्रोफाइट का उपयोग करते हुए मैं अतुल्यकालिक कॉलबैक से स्ट्रिंग या जेसनऑब्जेक्ट कैसे लौटा सकता हूं? सीडी में पढ़ने के लिए read.csv () का उपयोग करते समय "इनपुट में एम्बेडेड नल (एस) मिला" JavaScript ऑब्जेक्ट में कन्स्ट्रक्टर्स अजगर सूची की समझ वि। नक्शा फोनगैप / कॉर्डोवा एंड्रॉइड डेवलपमेंट पायथन में सूचियों को उलटने में असमर्थ, "नॉनटाइप" को सूची के रूप में प्राप्त कर रहा है सी # संपत्ति और रेफरी पैरामीटर, क्यों नहीं चीनी?

गिट धक्का के लिए प्रयोक्ता नाम और पासवर्ड की आवश्यकता है

मैंने अपने जीथूब अकाउंट से जीआईटी रिपॉजिटरी को अपने पीसी में क्लोन किया है।

मैं अपने पीसी और लैपटॉप दोनों के साथ काम करना चाहता हूं, लेकिन एक गिथूब अकाउंट के साथ।

जब मैं अपने पीसी का उपयोग करके गिथूब को पुश करने या खींचने की कोशिश करता हूं, तो उसे लैपटॉप और लैपटॉप का इस्तेमाल करते समय उपयोगकर्ता नाम और पासवर्ड की आवश्यकता होती है, लेकिन नहीं!

जब भी मैं मूल के साथ इंटरैक्ट करता हूँ, तब मैं अपना उपयोगकर्ता नाम और पासवर्ड टाइप नहीं करना चाहता। मुझे यहाँ क्या याद आ रही है?

वेब के समाधान से एकत्रित समाधान "गिट धक्का के लिए प्रयोक्ता नाम और पासवर्ड की आवश्यकता है"

एक सामान्य गलती एसएसएच के बजाय डिफ़ॉल्ट (HTTPS) का उपयोग कर क्लोन करना है आप अपने रिपॉजिटरी में जाकर इसे सही कर सकते हैं, यूआरएल क्षेत्र में छोड़े गए एसएसटी बटन को क्लिक करके और अपने मूल के यूआरएल को इस तरह रिमोट अपडेट कर सकते हैं:

git remote set-url origin git@github.com:username/repo.git 

मैं सिर्फ एक ही समस्या में आया था, और मैंने पाया कि सबसे आसान समाधान HTTPS के बजाय एसएसएच यूआरएल का उपयोग करना था:

 ssh://git@github.com/username/repo.git 

और यह नहीं:

 https://github.com/username/repo.git 

अब आप username और password बजाय बस SSH Key साथ मान्य कर सकते हैं

एसएसएच को बदलने के अलावा, आप HTTPS का उपयोग भी रख सकते हैं, अगर आप अपना पासवर्ड स्पष्ट पाठ में नहीं डाल सकते हैं। इसे अपने ~/.netrc और यह आपके उपयोगकर्ता नाम / पासवर्ड (कम से कम लिनक्स और मैक पर) नहीं मांगेगा:

 machine github.com login <user> password <password> 

जोड़ (वॉनसी की दूसरी टिप्पणी देखें): विंडोज़ पर फ़ाइल का नाम %HOME%\_netrc

अगर आप एनक्रिप्ट करना चाहते हैं तो वॉनसी की पहली टिप्पणी भी पढ़ें

एक अन्य अतिरिक्त (user137717 की टिप्पणी देखें) जिसका उपयोग आप जीआईटी 1.7.10 या नए में कर सकते हैं।

क्रेडेंशियल सहायक का उपयोग करके अपने जीआईटीब पासवर्ड को गिट में कैश करें :

यदि आप HTTPS का उपयोग करते हुए GitHub रिपॉजिटरी क्लोनिंग कर रहे हैं, तो आप एक क्रेडेंशियल सहायक का उपयोग करके गिट को यह बता सकते हैं कि वह अपने GitHub उपयोगकर्ता नाम और पासवर्ड को हर बार जब GitHub से बात करता है

यह लिनक्स, मैक और विंडोज पर काम करता है

जीआईटी रिपॉजिटरी के साथ स्थायी रूप से प्रमाणन,

क्रेडेंशियल कैशिंग सक्षम करने के लिए निम्न कमांड चलाएं:

 $ git config credential.helper store $ git push https://github.com/repo.git Username for 'https://github.com': <USERNAME> Password for 'https://USERNAME@github.com': <PASSWORD> 

उपयोग को कैशिंग की समय सीमा को भी निर्दिष्ट करना चाहिए,

 git config --global credential.helper 'cache --timeout 7200' 

क्रेडेंशियल कैशिंग सक्षम करने के बाद, यह 7200 सेकंड (2 घंटे) के लिए कैश किया जाएगा।

अनजाने के लिए जो पिछले उत्तरों से भ्रमित हैं, आप ऐसा कर सकते हैं:

git remote -v

जो कुछ की तरह प्रतिक्रिया देगा

 origin https://yourname@github.com/yourname/yourrepo.git (fetch) origin https://yourname@github.com/yourname/yourrepo.git (push) 

तो आप कई अन्य सुझाए गए निर्देशों को चला सकते हैं, लेकिन अब आप ऊपर से अपना नाम और yourrepo जानते हैं, ताकि आप ऊपर से yourname/yourrepo.git कट और पेस्ट कर सकें

 git remote set-url origin git@github.com:yourname/yourrepo.git 

यदि आप एसएसएच का उपयोग कर रहे हैं और आपकी निजी कुंजी को पासफ़्रेज़ के साथ एन्क्रिप्ट किया गया है, तो आप को गिट जैसे push , pull और फ़ेन्च के साथ नेटवर्क संचालन करते समय निजी कुंजी के लिए पासफ़्रेज़ / पासवर्ड दर्ज करने के लिए अभी भी संकेत दिया जाएगा

निजी कुंजी पासफ़्रेज / पासवर्ड क्रेडेंशियल्स को बचाने के लिए ssh-agent का उपयोग करें

यदि आप अपना पासफ़्रेज़ हर बार दर्ज करने से बचने के लिए चाहते हैं, तो आप अपने निजी कुंजी पासफ़्रेज क्रेडेंशियल को प्रति टर्मिनल सत्र में एक बार स्टोर करने के लिए ssh-agent का उपयोग कर सकते हैं, जैसा कि मैं अपने जवाब में समझाता हूं कि आपके प्रमाणीकरण एजेंट से कोई कनेक्शन नहीं खोला जा सकता है :

 $ eval `ssh-agent -s` $ ssh-add 

Windows msysgit Bash में, आपको ssh-agent के आउटपुट का मूल्यांकन करने की आवश्यकता है, लेकिन मुझे यकीन नहीं है कि आपको अन्य विकास वातावरण और ऑपरेटिंग सिस्टम में ऐसा करने की आवश्यकता है।

ssh-add आपके घर में एक निजी कुंजी के लिए दिखता है .ssh फ़ोल्डर id_rsa कहा जाता है, जो कि डिफ़ॉल्ट नाम है, लेकिन आप एक फ़ाइल नाम को एक अलग नाम के साथ एक कुंजीपटल पास कर सकते हैं

एजेंट की हत्या

जब आप अपने टर्मिनल सत्र के साथ कर लेंगे, तो आप मार-फ्लैग ssh-agent साथ ssh-agent बंद कर सकते हैं:

 $ ssh-agent -k 

जैसा कि ssh-agent मैनुअल में बताया गया है:

 -k 

वर्तमान एजेंट को मार डालें (SSH_AGENT_PID पर्यावरण चर द्वारा दिया गया)

वैकल्पिक समयबाह्य

साथ ही, यह एक वैकल्पिक समयबाह्य पैरामीटर ले सकता है जैसे:

 $ ssh-add -t <timeout> 

जहां <timeout> प्रारूप <n>h लिए <n> घंटे, <n>m <n> मिनट, और इतने पर है

ssh-agent मैनुअल के अनुसार:

 -t life 

एजेंट में जोड़े जाने वाले पहचान के अधिकतम जीवनकाल के लिए एक डिफ़ॉल्ट मान सेट करें जीवनकाल सेकंड या किसी समय प्रारूप में निर्दिष्ट किया जा सकता है जिसे sshd_config (5) में निर्दिष्ट किया गया है। एसएच-एडी (1) के साथ एक पहचान के लिए निर्दिष्ट जीवनकाल इस मान को ओवरराइड करता है। इस विकल्प के बिना डिफ़ॉल्ट अधिकतम जीवनकाल हमेशा के लिए है।

इस पृष्ठ को अधिक समय प्रारूपों के लिए देखें ।

साइगविन उपयोगकर्ताओं के लिए सुरक्षा चेतावनी

Cygwin उपयोगकर्ताओं को साइगविन में ssh-agent का उपयोग करने के साथ संभावित सुरक्षा जोखिम के बारे में पता होना चाहिए:

लोगों को साइगविन [1] के तहत एसएसएच एजेंट के संभावित खतरों के बारे में पता होना चाहिए, हालांकि स्थानीय नेटस्टैट और रिमोट पोर्ट्सकेन के तहत ऐसा नहीं दिखता है कि / tmp / ssh-foo में निर्दिष्ट पोर्ट किसी के लिए उपलब्ध है …?

 [1]: http://www.cygwin.com/ml/cygwin/2001-01/msg00063.html 

और उद्धृत लिंक पर :

हालांकि, ध्यान दें कि साइगविन की यूनिक्स डोमेन सॉकेट्स पूरी तरह से इंजेक्शन हैं और इसलिए मैं साइगविन के तहत एसएसएडी एजेंट का दृढ़ता से उपयोग करना चाहता हूं।

जब आप साइजविन के तहत ssh एजेंट को चलाते हैं तो यह /tmp/ssh-$USERNAME/ निर्देशिका में AF_UNIX सॉकेट बनाता है। साइगविन के तहत AF_UNIX सॉकेट्स को AF_INET सॉकेट्स के माध्यम से अनुकरण किया जाता है। आप आसानी से देख सकते हैं कि यदि आप नोटपैड के माध्यम से /tmp/ssh-$USERNAME/agent-socket-* फ़ाइल में /tmp/ssh-$USERNAME/agent-socket-* आप की तरह कुछ देखेंगे

 !<socket >2080 

फिर netstat -a और आश्चर्य netstat -a ! आपके पास कुछ प्रोग्राम पोर्ट 2080 को सुन रहा है। यह एसएसएच-एजेंट है जब /tmp/ssh-$USERNAME/agent-socket-* सर्वर से आरएसए चुनौती प्राप्त करता है, तो वह संबंधित /tmp/ssh-$USERNAME/agent-socket-* को संदर्भित करता है /tmp/ssh-$USERNAME/agent-socket-* तहत, हमारे मामले में, इसका मतलब है कि यह /tmp/ssh-$USERNAME/agent-socket-* कनेक्शन खोलता है localhost:2080 ) और एसएसएच-एजेंट पूछता है आरएसए चुनौती को निजी कुंजी के साथ संसाधित करने के लिए, और फिर यह बस एसएसएच-एजेंट से सर्वर पर प्रतिक्रिया प्राप्त करता है

यूनिक्स के तहत, ऐसा परिदृश्य बिना समस्याओं के काम करता है, क्योंकि यूनिक्स कर्नेल AF_UNIX सॉकेट तक पहुंचने की कोशिश करता है जब अनुमति देता है। AF_INET सॉकेट्स के लिए, हालांकि, कनेक्शन गुमनाम होते हैं ("असुरक्षित" पढ़ें)। कल्पना करो, कि आपके पास साइगविन एसएसएच-एजेंट चल रहा है। दुर्भावनापूर्ण हैकर आपके बॉक्स को पोर्ट कर सकता है, एसएसएच एजेंट द्वारा उपयोग किए गए खुले बंदरगाह का पता लगाएं, अपने एसएसएच सर्वर से खुला कनेक्शन प्राप्त करें, इसे आरएसए चुनौती प्राप्त करें, उसे अपने एसएसएच एजेंट को खुले पोर्ट के माध्यम से भेजें, वह आरएसए की प्रतिक्रिया प्राप्त करें, इसे एसएसए भेजें सर्वर और वॉयला, वह आपके सर्वर में सफलतापूर्वक लॉग इन हुआ है।

स्रोत: गिट सेट करें

निम्न कमांड आपके पासवर्ड को कुछ समय के लिए मेमोरी में सेव करेगी।
( जीआईटी 1.7.10 या नए के लिए।)

 $ 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) 

जब आप remote.origin.url लिए remote.origin.url इस्तेमाल करते हैं तो पुल और पुश करें, अपने प्रोजेक्ट के लिए सिर्फ remote.origin.url कॉन्फ़िगर करें, इनपुट यूजरनेम (या / और पासवर्ड) से बचने के लिए हर बार आप पुश करें

कैसे remote.origin.url कॉन्फ़िगर remote.origin.url :

 यूआरएल प्रारूप:
     https: // {उपयोगकर्ता नाम: पासवर्ड @} {github.com/ मालिक} / {} रेपो

 Url में पैरामीटर:
 * उपयोगकर्ता नाम
     वैकल्पिक, उपयोग करने के लिए उपयोगकर्ता नाम जब प्रमाणीकरण की आवश्यकता होती है,
     यदि निर्दिष्ट किया गया है, तब उपयोगकर्ता नाम दर्ज करने की आवश्यकता नहीं है जब आवश्यकता प्रमाणन,
     ईमेल का उपयोग न करें, अपने यूज़रनेम का उपयोग करें जिसमें "@" नहीं है, अन्यथा यूआरएल को सही ढंग से पार्स नहीं किया जा सकता है,
 * पारण शब्द
     वैकल्पिक, पासवर्ड का उपयोग करने के लिए जब आवश्यकता प्रमाणीकरण,
     यदि निर्दिष्ट किया गया है, तो आवश्यकता के प्रमाणन के बाद पासवर्ड को फिर से दर्ज करने की आवश्यकता नहीं है,
     टिप:
         यह मान सादा पाठ के रूप में संग्रहीत है, इसलिए सुरक्षा चिंता के लिए, इस परम को निर्दिष्ट न करें,
 * 

 जैसे
     git config remote.origin.url https: //eric@github.com/eric/myproject


@ अद्यतन – ssh का उपयोग करना

मुझे लगता है कि ssh प्रोटोकॉल का इस्तेमाल करना https मुकाबले एक बेहतर समाधान है, हालांकि सेटअप चरण थोड़ी अधिक जटिल है

असल कदम:

  • कमांड का उपयोग करके msysgit कुंजी बनाएं, जैसे कि ssh-keygen msysgit ऑन लिनक्स, विंडोज़ msysgit पर समान आज्ञा प्रदान करें।
  • स्थानीय मशीन पर उचित स्थान पर निजी कुंजी रखें, जैसे ~/.ssh और ssh-add कमांड के माध्यम से इसे ssh एजेंट में ssh-add
  • जीआईटी सर्वर पर सार्वजनिक कुंजी अपलोड करें
  • Git repository के remote.origin.url को ssh शैली में बदलें, जैसे git@gitlab.com:myaccount/myrepo.git
  • तब जब पुल या पुश, कोई भी उपयोगकर्ता नाम या पासवर्ड दर्ज करने की आवश्यकता नहीं है।

सुझाव:

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

@ अपडेट – https और ssh प्रोटोकॉल के बीच स्विच https

बस remote.origin.url बदलें। remote.origin.url पर्याप्त होगा, या आप मूल्य को बदलने के लिए सीधे repo_home/.git/config संपादित कर सकते हैं (उदाहरण के लिए लिनक्स पर vi का प्रयोग करना)।

आम तौर पर मैं प्रत्येक प्रोटोकॉल के लिए एक पंक्ति जोड़ता हूं, और इनमें से एक को # का उपयोग करके टिप्पणी देता हूं।

जैसे

 [रिमोट "मूल"]
         url = git@gitlab.com: myaccount / myrepo.git
         # url = https: //myaccount@gitlab.com/myaccount/myrepo.git
         लाओ = + रिफ़ा / सिर / *: रेफरी / रीमोट्स / मूल / *

आप अपने GitHub पासवर्ड को गिट में कैश कर सकते हैं:

बस गिथूब के आधिकारिक दस्तावेजों के निर्देशों का पालन करें।

उपर्युक्त लिंक से दिए गए निर्देशों का पालन करने के बाद, आप हर बार अपना यूजरनेम / पासवर्ड टाइप किए बिना अपने रिपो से / पुश करने / खींचने में सक्षम होना चाहिए।

मेरे लिए क्या काम किया गया था। .git/config और उपयोग करें

 [remote "origin"] url = https://<login>:<password>@gitlab.com(...).git 

यह कहने के बिना जाता है कि यह आपके पासवर्ड को संचय करने का एक असुरक्षित तरीका है, लेकिन वातावरण / मामले हैं जहां यह समस्या नहीं हो सकती है

HTTPS के लिए अद्यतन:

Github ने विंडोज के लिए एक नया प्रोग्राम लॉन्च किया है जो आपके क्रेडेंशियल्स को सुरक्षित करता है जब आप HTTPS का उपयोग कर रहे हैं:

काम में लाना:

यहां से कार्यक्रम डाउनलोड करें

कार्यक्रम चलाने के बाद यह आपके .gitconfig फ़ाइल को संपादित करेगा। फिर से .gitconfig कि क्या यह सही .gitconfig को संपादित करता है, यदि आपके पास उनमें से कई हैं अगर यह सही नहीं संपादित करता है, तो अपने .gitconfig में निम्न जोड़ें

 [credential] helper = !'C:\\Path\\To\\Your\\Downloaded\\File\\git-credential-winstore.exe' 

[credential] बाद लाइन ब्रेक नोट करें यह आवश्यक है।

अपना कमांड लाइन क्लाइंट खोलें और git push origin master एक बार प्रयास करें। यदि वह आपको एक पासवर्ड के लिए पूछता है, तो उसे दर्ज करें और आप के माध्यम से हो। पासवर्ड सहेजा गया!

आपके पास मूल रूप से दो विकल्प हैं

यदि आप एक ही उपयोगकर्ता दोनों मशीनों पर उपयोग करते हैं तो आपको अपने पीसी में .pub की प्रतिलिपि बनाने की आवश्यकता होती है, इसलिए गिटौब जानता है कि आप समान उपयोगकर्ता हैं।

यदि आपने अपने पीसी के लिए एक नई। Pub फाइल बनाई है और मशीनों को अलग-अलग उपयोगकर्ताओं के रूप में व्यवहार करना चाहते हैं, तो आपको गिटब वेबसाइट पर नई .pub फ़ाइल को पंजीकृत करने की आवश्यकता है।

यदि यह अभी भी काम नहीं करता है, क्योंकि यह संभव है कि ssh सही ढंग से कॉन्फ़िगर नहीं किया गया है और वह एसएसआई आपकी चाबियों के स्थान को खोजने में विफल हो। प्रयत्न

 ssh -vv username@github.com 

अधिक जानकारी प्राप्त करने के लिए क्यों SSH विफल रहता है

मेरे पास एक ही समस्या थी

इसलिए मेरी परियोजना से .git / config फाइल को बदलें

 url = https://github.com/<your-user-here>/<your-repo-here> 

सेवा मेरे

 url = git@github.com:<your-user-here>/<your-repo-here> 

और जीआईटी प्रोफ़ाइल में एसएसपी सार्वजनिक कुंजी को जोड़ना जो कि सेटिंग में है।

एसएसपी सार्वजनिक कुंजी के लिए

 cat ~/.ssh/id_rsa.pub 

अगर आप विंडोज के तहत जीआईटी (उदा। जीआईटी बैश) का उपयोग कर रहे हैं (और यदि आप https से एसएसएच तक स्विच नहीं करना चाहते हैं)

आप http://gitcredentialstore.codeplex.com/ का भी उपयोग कर सकते हैं

यह एप्लिकेशन आपके लिए उपयोगकर्ता नाम और पासवर्ड रखेगा …