स्क्रीन पर निर्देशों का पालन करने और एक नए रेपो को आगे बढ़ाने के लिए जीथब उपयोगकर्ता नाम / पासवर्ड क्यों पूछ रहा है?


298

मैं गितुब पर एक संगठन का मालिक हूं और बस एक रेपो बनाया है और धक्का देने की कोशिश की है, लेकिन मैं एक ऐसे मुद्दे पर चल रहा हूं जहां यह मेरे उपयोगकर्ता नाम के लिए पूछ रहा है, भले ही मैं एसएसएच सिर्फ ठीक कर सकता हूं:

$ ssh -T git@github.com
Hi Celc! You've successfully authenticated, but GitHub does not provide shell access.
$ git add .
$ git commit -m 'first commit'
[master (root-commit) 3f1b963] first commit
 6 files changed, 59 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 main.js
 create mode 100644 package.json
 create mode 100644 readme.markdown
 create mode 100644 views/index.ejs
 create mode 100644 views/layout.ejs
$ git remote add origin https://github.com/WEMP/project-slideshow.git
$ git push -u origin master
Username for 'https://github.com':

मैं क्या गलत कर रहा हूं? यह मेरे साथ पहले कभी नहीं हुआ है लेकिन मैंने हाल ही में जीआईटी 1.7.10.3 पर अपग्रेड किया है।

जवाबों:


662

इसके बजाय HTTP उपयोग SSH का उपयोग न करें

परिवर्तन

https://github.com/WEMP/project-slideshow.git 

सेवा

git@github.com:WEMP/project-slideshow.git

आप इसे .git/configफ़ाइल में कर सकते हैं


1
धन्यवाद! मैं सिर्फ पढ़ने के बाद यह पता लगा stackoverflow.com/a/10126412/29347 , मैं GitHub सामान्य रूप से नहीं लगता कि मुझे एक रेपो दूरस्थ HTTPS के रूप में देता है जो थोड़ा भ्रम उत्पन्न करते हैं।
किट संडे

2
आप इस विकल्प को उस बटन पर क्लिक करके बदल सकते हैं जहाँ आप अपने क्लोन यूआरएल को कॉपी करते हैं।
डेरेक अडायर

MacOS के लिए। समस्या जब आप नवीनतम macos में अपग्रेड करते हैं। stackoverflow.com/a/39616339/1445102
1Rhino

12
आप यह भी कर सकते हैं git remote set-url origin git@github.com:user/repo.gitके रूप में में विस्तृत, stackoverflow.com/questions/10126381/...
और अंत में

54

मेरे पास यह एक ही मुद्दा था और आश्चर्यचकित था कि यह बिटबकेट रेपो के साथ क्यों नहीं हुआ जो कि https के साथ क्लोन किया गया था। इसे थोड़ा सा देखते हुए मैंने पाया कि बीबी रेपो के लिए कॉन्फ़िगर में एक URL था जिसमें मेरा उपयोगकर्ता नाम शामिल था। इसलिए मैंने मैन्युअल रूप से अपने GH रेपो के लिए कॉन्फिग को एडिट किया जैसे कि वॉयला और कोई यूजरनेम प्रॉम्प्ट नहीं। मैं विंडोज पर हूँ।

संपादित करें your_repo_dir/.git/config(याद रखें: .gitफ़ोल्डर छिपा हुआ है)

परिवर्तन:

https://github.com/WEMP/project-slideshow.git

सेवा:

https://*username*@github.com/WEMP/project-slideshow.git

फ़ाइल सहेजें। git pullयह परीक्षण करने के लिए एक करो ।

ऐसा करने का उचित तरीका संभवतः सेटिंग को संपादित करने के लिए git bash कमांड का उपयोग करके है, लेकिन फ़ाइल को सीधे संपादित करना एक समस्या नहीं लगती।


यह एक अच्छा बिंदु है, यदि आप उपयोगकर्ता नाम शामिल करते हैं तो इसे ओएस किचेन द्वारा संभाला जाएगा (कम से कम यह ओएसएक्स में होना चाहिए, और जाहिर तौर पर विंडोज में भी)। नोटपैड के साथ या vim / emacs / नैनो / vi के साथ फ़ाइल को संपादित करने के बीच कोई अंतर नहीं है, मैं तकनीकी स्नोबबेरी के बारे में इतना चिंता नहीं करूंगा यह सिर्फ एक सादे पाठ फ़ाइल वैसे भी है।
किट सुंडे

20

यहाँ एक है सरकारी जवाब यह करने के लिए:

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

HTTPS रिमोट URL का उपयोग करना कुछ लाभ हैं: यह SSH से स्थापित करने के लिए आसान है, और आमतौर पर सख्त फायरवॉल और प्रॉक्सी के माध्यम से काम करता है। हालांकि, यह आपको हर बार जब आप एक रिपॉजिटरी को खींचते हैं या धक्का देते हैं, तो अपने GitHub क्रेडेंशियल्स में प्रवेश करने के लिए संकेत देते हैं।

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


1
धन्यवाद। : मैं Github साथ तर्क था कि यह सेटअप करने के लिए आसान नहीं है, तो आप यहाँ अंत है (
ecoologic

यह एक सवाल का जवाब है क्योंकि सवाल पूछते हैं, क्यों ?
एलि

14

@ इयान के उत्तर में सुधार ,

ऐसा लगता है कि यदि 2-चरण प्रमाणीकरण सक्षम है, तो आपको पासवर्ड के बजाय टोकन का उपयोग करना होगा। आप यहां एक टोकन जेनरेट कर सकते हैं

यदि आप उपयोगकर्ता नाम और पासवर्ड दोनों के लिए संकेतों को निष्क्रिय करना चाहते हैं तो आप URL निम्नानुसार सेट कर सकते हैं -

git remote set-url origin https://username:password@github.com/WEMP/project-slideshow.git

ध्यान दें कि URL में उपयोगकर्ता नाम और पासवर्ड दोनों हैं। साथ ही .git/configफ़ाइल को आपकी वर्तमान सेटिंग्स दिखनी चाहिए।


अद्यतन 20200128:

यदि आप कॉन्फिगर फाइल में पासवर्ड स्टोर नहीं करना चाहते हैं, तो आप अपना पर्सनल टोकन जेनरेट कर सकते हैं और पासवर्ड को टोकन से बदल सकते हैं। यहाँ कुछ विवरण हैं

यह इस तरह दिखेगा -

git remote set-url origin https://username:token@github.com/WEMP/project-slideshow.git

क्या यह सुरक्षित है? क्या कोई मेरे कंप्यूटर से सिर्फ इस जानकारी को एक्सेस कर सकता है?
एकैस्तेफ 7

हां, वे आपके कंप्यूटर से एक्सेस कर सकते हैं क्योंकि वे .git/configफ़ाइल में सादे पाठ में संग्रहीत होते हैं
कौशल

11

एक अतिरिक्त नोट:

यदि आपने पहले ही एक रिमोट ($ git रिमोट ऐड ओरिजिन ...) जोड़ दिया है और उस विशेष रिमोट को बदलने की आवश्यकता है, तो नया और बेहतर रेपो URL जोड़ने से पहले एक रिमोट रिमूव ($ git रिमोट आरएम उत्पत्ति) करें (जहाँ "मूल" दूरस्थ रेपो का नाम था)।

इसलिए मूल उदाहरण का उपयोग करने के लिए:

$ git remote add origin https://github.com/WEMP/project-slideshow.git
$ git remote rm origin
$ git remote add origin https://github-username@github.com/WEMP/project-slideshow.git

4
आपको रिमोट नहीं निकालना है। आप बस URL बदल सकते हैं:git remote set-url origin https://github-username@github.com/WEMP/project-slideshow.git
shovavnik 10

8

यदि आप HTTPS का उपयोग कर रहे हैं, तो यह सुनिश्चित करने के लिए जांचें कि आपका URL सही है। उदाहरण के लिए:

$ git clone https://github.com/wellle/targets.git
Cloning into 'targets'...
Username for 'https://github.com': ^C

$ git clone https://github.com/wellle/targets.vim.git
Cloning into 'targets.vim'...
remote: Counting objects: 2182, done.
remote: Total 2182 (delta 0), reused 0 (delta 0), pack-reused 2182
Receiving objects: 100% (2182/2182), 595.77 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1044/1044), done.

1
यह एक महान बिंदु है! यदि आपके पास URL में एक टाइपो है, तो आपको बताया जाएगा कि रिपोजिटरी मौजूद नहीं है, इसके बजाय आपको 'उपयोगकर्ता नाम' के लिए संकेत दिया जाएगा।
dmitrii

5

मैंने अभी एक github.com व्यवस्थापक से एक ईमेल प्राप्त किया है, जिसमें कहा गया है: "हम आम तौर पर लोगों को HTTPS URL का उपयोग करने की सलाह देते हैं, जब तक कि उनके पास SSH प्रोटोकॉल का उपयोग करने का कोई विशिष्ट कारण न हो। HTTPS सुरक्षित और आसान है। हम उस समय डिफ़ॉल्ट होते हैं जब एक नया भंडार बनाया जाता है। "

पासवर्ड प्रॉम्प्ट वास्तव में सामान्य github.com लॉगिन विवरण स्वीकार करता है। पासवर्ड कैशिंग सेट अप करने का एक ट्यूटोरियल https://help.github.com/articles/set-up-git#password-caching पर पाया जा सकता है । मैंने ट्यूटोरियल में चरणों का पालन किया, और इसने मेरे लिए काम किया।


1
URL अपडेट किया गया है: help.github.com/articles/caching-your-github-password-in-git
MarkHu

4

क्योंकि आप HTTPS तरीका इस्तेमाल कर रहे हैं । HTTPS के लिए आवश्यक है कि आप अपना खाता एक्सेस हर बार जब आप पुश या खींचने का प्रयास करें , लेकिन एक तरीका भी है, जिसे SSH कहा जाता है , और यह आपको git बताने की अनुमति देता है, कि मैं आपको इस पीसी के लिए अपने खाते की अनुमति देता हूं, और कभी नहीं पूछता किसी भी उपयोगकर्ता के उपयोग के बारे में मुझे फिर से । इसका उपयोग करने के लिए, आपको SSH कुंजी जेनरेट करनी होगी और इसे केवल एक बार अपने Github खाते में जोड़ना होगा । ऐसा करने के लिए, आप इन चरणों का पालन कर सकते हैं।

Github के लिए SSH कुंजी कैसे जनरेट करें


4

यदि आपने दो कारक प्रमाणीकरण सक्षम किए हैं, तो आपको अपने व्यक्तिगत पासवर्ड के बजाय एक व्यक्तिगत एक्सेस टोकन उत्पन्न करना होगा और उसका उपयोग करना होगा। अधिक जानकारी यहाँ: https://help.github.com/articles/creating-an-access-token-for-command-line-use/


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