Git पुश के लिए कमांड में यूजरनेम और पासवर्ड


107

यह एक git रिपॉजिटरी को क्लोन करने के लिए संभव है, कमांड में उपयोगकर्ता नाम और पासवर्ड निर्दिष्ट करता है। उदाहरण:

git clone https://username:password@myrepository.biz/file.git

क्या पुश करने पर उपयोगकर्ता नाम और पासवर्ड भी निर्दिष्ट करना संभव है? इसलिए, उदाहरण के लिए, रनिंग git push origin --allतब पासवर्ड मांगते हुए आउटपुट देगा। मैं यह एक आदेश में चाहता हूँ।

(मुझे चाबियाँ और अन्य समाधान स्थापित करने की क्षमता के बारे में पता है, लेकिन मैं यह जानना चाहता हूं कि क्या कोई तरीका है कि केवल एक कमांड के साथ उपयोगकर्ता नाम और पासवर्ड का उपयोग करते रहें।) मैं विंडोज 8.1 पर गिट बैश चला रहा हूं।


क्या आप इसका समाधान ढूंढते हैं git commit?
नाम वू

जवाबों:


157

हाँ, आप कर सकते हैं

git push https://username:password@myrepository.biz/file.git --all

इस मामले में https://username:password@myrepository.biz/file.gitकी जगह originमेंgit push origin --all

के लिए और विकल्प देखने के लिए git push, प्रयास करेंgit help push


13
ध्यान दें कि यह उपयोगकर्ता नाम और पासवर्ड को सादे विन्यास में git विन्यास में संग्रहीत करेगा ।
प्रहार

4
सादे पासवर्ड के बजाय आप पासवर्ड का उपयोग कर सकते हैं
Vasiliy Vanchuk

1
@VasiliyVanchuk आप किस तरह के हैश का उपयोग करते हैं? क्या यह गितुब के लिए काम करता है?
रफ़ी

14
यदि पासवर्ड होता है तो क्या होगा @?
राहुल शर्मा

1
' 'उदाहरण के लिए, पूरा रास्ता git push 'https://username:password@myrepository.biz/file.git'
घेरने की सलाह देते हैं

27

मैंने नीचे प्रारूप का उपयोग किया

git push https://username:password@myrepository.biz/file.git --all

और यदि आपके पासवर्ड या उपयोगकर्ता नाम में @% 40 है तो इसे बदल दें


आप उस% 40 को प्राप्त करने के लिए WebUtility.UrlEncode (पासवर्ड) का भी उपयोग कर सकते हैं
iPradeep

php उपयोगकर्ताओं के लिए इसका उपयोग यह urlencode($password)न केवल सभी विशेष वर्णों को कूटबद्ध करेगा @
shyammakwana.me

3

Git प्रलेखन के अनुसार , git pushकमांड का अंतिम तर्क वह रिपॉजिटरी हो सकता है जिसे आप पुश करना चाहते हैं:

    git push [--all | --mirror | --tags] [-n | --dry-run] [--receive-pack=<git-receive-pack>]
             [--repo=<repository>] [-f | --force] [--prune] [-v | --verbose] [-u | --set-upstream]
             [<repository> [<refspec>…]]

और repositoryपैरामीटर एक URL या एक दूरस्थ नाम हो सकता है।

तो आप उपयोगकर्ता नाम और पासवर्ड को उसी तरह निर्दिष्ट कर सकते हैं जैसे आप अपने उदाहरण में करते हैं clone


2
यह उपयुक्त लगता है, लेकिन जब मैं एक तर्क के रूप में उपयोगकर्ता नाम और पासवर्ड के साथ गिट रेपो जोड़ता हूं, उदाहरण के लिए, यह अभी भी पासवर्ड के लिए संकेत देता है।
जेक

3

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

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

बेशक यह केवल https के माध्यम से प्रमाणीकरण के लिए काम करता है; ssh एक्सेस ( git@host.com/repository.git) के लिए आप SSH कुंजियों का उपयोग करते हैं और जिन्हें आप याद रख सकते हैं ssh-agent(या आप पलक का उपयोग कर रहे हैं तो PuTTY के पेजेंट का उपयोग कर सकते हैं)।


4
"मुझे चाबियाँ और अन्य समाधान स्थापित करने की क्षमता के बारे में पता है, लेकिन मैं जानना चाहता हूं कि क्या एक कमांड के साथ उपयोगकर्ता नाम और पासवर्ड का उपयोग करने का कोई तरीका है।"
मार्विन

@ मर्विन मैं उस टिप्पणी से अवगत हूं, हालांकि मैं सिर्फ दो-वाक्य का जवाब प्रस्तुत नहीं करना चाहता था, इसलिए मैंने अन्य उपयोगकर्ताओं के लिए जानकारी शामिल की, जो शायद HTTPS के माध्यम से जुड़ने में रुचि नहीं रखते।
प्रहार

4
यह अभी भी अपने सवाल का जवाब नहीं है, हालांकि।
मार्विन

3

यह संभव है लेकिन, git 2.9.3 (अगस्त 2016) से पहले, git pushक्लोन किए गए रेपो को वापस धकेलने के दौरान उपयोग किए गए पूर्ण url को प्रिंट करेगा।
जिसमें आपका उपयोगकर्ता नाम और पासवर्ड शामिल होगा!

लेकिन इससे अधिक नहीं: जेफ किंग ( ) द्वारा देखें कमिटेड 68f3c07 (20 जुलाई 2016), और 882d49c (14 जुलाई 2016 )(द्वारा विलय Junio सी Hamano - - में प्रतिबद्ध 71076e1 , 08 अगस्त 2016)peff
gitster

push: स्टेटस आउटपुट में URL अज्ञात करें

कमेटी 47abd85 (fetch: यूआरएल के स्ट्रीप यूजरनाम, उन्हें स्टोर करने से पहले, 2009-04-17, Git 1.6.4) ने URL अनामी करना सिखाया।
मर्ज-कमिट मैसेजेस में स्टिकिंग पासवर्ड से बचने का प्राथमिक उद्देश्य था, लेकिन साइड इफेक्ट के रूप में, हम उन्हें स्टल्डर करने के लिए प्रिंट करने से भी बचते हैं।

पुश साइड में मर्ज-कम प्रॉब्लम नहीं है, लेकिन इसे शायद स्टादर पर प्रिंट करने से बचना चाहिए । हम एक ही अज्ञात फ़ंक्शन का पुन: उपयोग कर सकते हैं।

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

लेकिन यह कोई बहाना नहीं है कि जो लोग किसी भी कारण से URL में एम्बेडेड क्रेडेंशियल्स का उपयोग करते हैं, उनके लिए स्थिति में सुधार नहीं होगा।


1

किसी व्यक्ति के पास विशेष वर्ण वाले पासवर्ड के लिए समस्याएँ हैं, केवल पासवर्ड छोड़ दें और यह आपको इसके लिए संकेत देगा:

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