git टर्मिनल से गलत उपयोगकर्ता के साथ धक्का देता है


112

मेरे पास git और मेरे टर्मिनल के साथ एक मुद्दा है।

यहाँ आपको मेरा मुद्दा दिखाने के लिए एक गैलरी है: http://imgur.com/a/6RrEY

जब मैं अपने टर्मिनल से धक्का देता हूं, तो गिट कहता है कि मैं उन्हें किसी अन्य उपयोगकर्ता नाम के साथ धक्का देता हूं, यह मेरे संगठन (मेरी कंपनी) का एक उपयोगकर्ता है जिसमें कोई कमिट नहीं है और ऐसा लगता है कि यह किसी का नहीं है: (चेक गैलरी पहली तस्वीर)

लेकिन यह तब नहीं होता है जब मैं मैक के लिए गितुब का उपयोग करता हूं, फ़ीड में मैं खुद द्वारा धक्का दिए गए कमिट्स को देखता हूं।

समस्या मेरे व्यक्तिगत रिपॉजिटरी को भी प्रभावित करती है, मेरे टर्मिनल का कहना है कि मेरे पास उन रिपॉजिटरी (जो स्पष्ट रूप से गलत है) पर कमिट्स को पुश करने की अनुमति नहीं है क्योंकि यह इस उपयोगकर्ता के साथ पुश करने की कोशिश करता है: (गैलरी दूसरी तस्वीर देखें)

अंदाज़ा लगाओ ? यह Github के साथ मैक के लिए भी नहीं होता है।

मैंने कुछ दिनों पहले अपने कंप्यूटर को एक नए ब्रांड में बदल दिया है, इसलिए मैंने जीथूब की अपनी सभी ssh कुंजी रीसेट कर दी है और केवल एक नया नया Github द्वारा मैक के लिए उत्पन्न किया है इसलिए मुझे नहीं लगता कि कुछ भूत उपयोगकर्ता / ssh कुंजी छिपी है कहीं न कहीं, यह hdd एकदम नया है: (गैलरी तीसरी तस्वीर देखें)

मेरी .itconfig फ़ाइल सब स्पष्ट है, केवल मेरी साख है: (गैलरी चौथी तस्वीर देखें)

मुझे वास्तव में यह नहीं मिला, मदद करो, StackOverflow, तुम मेरी एकमात्र आशा हो।

(मेरे खराब जिम्प कौशल और स्टार वार्स संदर्भ के लिए मेरी माफी)

संपादित करें: ssh-add -l केवल मैक के लिए github द्वारा बनाई गई अच्छी ssh कुंजी दिखाता है और मेरे पास केवल एक github खाता है

EDIT2: ssh -T git@github.com मुझे अच्छे उपयोगकर्ता के रूप में पहचानें।

EDIT3: कुछ परीक्षणों के बाद ऐसा लगता है कि मेरा टर्मिनल मेरे उपयोगकर्ता नाम के साथ कमिट करता है, लेकिन दूसरे के साथ उन्हें धक्का देता है, मैक के लिए गितुब करता है और अच्छे उपयोगकर्ता नाम के साथ धक्का देता है। यह स्थिति हर रेपो के साथ होती है / मैं (नया भी) वाले)।

EDIT4: एक व्यक्तिगत रिपॉजिटरी में git log --pretty="%h %an %ae"मेरा अच्छा उपयोगकर्ता नाम दिखाता है

EDIT5: पर्यावरण चर का कोई संकेत नहीं है जो मेरी में मेरी साख को ओवरराइड करेगा env। यहां तक ​​कि अगर मैं उन चरों को अच्छी साख की समस्या के साथ सेट करने की कोशिश करता हूं तो भी समस्या बनी रहती है।

EDIT6: चीजें सामान्य रूप से वापस काम करती हैं यदि मैं उपयोगकर्ता को /.git/configभंडार के रास्ते में मजबूर करता हूं लेकिन मुझे नहीं लगता कि यह अच्छा विकल्प है:http://USER@github.com/USER/REPO.git

EDIT7: हमने मेरे लिए कमिट को धक्का देने वाले git उपयोगकर्ता को हटा दिया और यह एक और त्रुटि लाता है:remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/USER/REPO.git/'

अंतिम संस्करण: मैंने होमब्रे के साथ गिट स्थापित किया, टाइप किया git config --global push.default simple और अब यह उपयोगकर्ता को मजबूर किए बिना भी मेरी साख लेता है। वह अजीब है। आपकी मदद के लिए सभी को धन्यवाद, आप महान लोग हैं!


2
जाँच करें ~/.gitconfigऔर $project_root/.git/configफ़ाइलें। उन दो में से एक निश्चित रूप से उपयोगकर्ता नाम के लिए गलत है।
एमयू m

1
आपके उत्तर के लिए धन्यवाद ansh0l ~/.gitconfigस्पष्ट है और ऐसा ही है $project_root/.git/config। वास्तव में मेरे पास हर निजी परियोजना के साथ यह मुद्दा है, कार्य परियोजनाओं को धक्का दिया जा सकता है क्योंकि यह अन्य उपयोगकर्ता मेरे संगठन से संबंधित है जो उन भंडार का मालिक है।
यिनफ़ेई

क्या आपके पास कई गितुब खाते हैं? एक कंपनी के लिए, दूसरा व्यक्तिगत उपयोग के लिए?
एमयू m

नहीं, सब कुछ के लिए केवल एक।
यिनफ़ेई

1
एक कष्टप्रद समाधान सिर्फ एक और SSH कुंजी को पुनर्जीवित करना होगा। यदि आप अपनी वर्तमान SSH कुंजी का उपयोग किसी अन्य सेवा के साथ कर रहे हैं तो यह निरर्थक होगा।
एडुआर्डो बॉतिस्ता

जवाबों:


167

मुझे बस काम में यह समस्या थी। मैक के साथ जहाजों का निर्माण किया गया है या जब आप चाबी का गुच्छा में xcode caches git क्रेडेंशियल स्थापित करते हैं। मेरे लिए यह तय था:

किचेन एक्सेस शुरू करें (सीएमडी + स्पेस के माध्यम से स्पॉटलाइट शुरू करें, चाबी का गुच्छा टाइप करें, एंटर दबाएं)

ऊपरी बाईं ओर कीचेन के नीचे, "लॉगिन" का चयन करें बाईं ओर की श्रेणी में, "पासवर्ड" चुनें

"गिथब" नाम ढूंढें और इसे हटा दें।


2
सुनिश्चित करें कि आप यहां सभी गिथब प्रविष्टि को हटा दें और लॉगिन कॉन्फ़िगरेशन सेट करें * git config --global user.name <name> * git config --global user.email <email>
Shank_Transformer

मेरे मामले में, SourceTree इस समस्या का सामना कर रहा था। किचेन में आइटम को हटाने से यह ठीक हो गया!
शोएबॉब

1
@Shank_Transformer आपके समाधान ने मेरे लिए काम किया! धन्यवाद!
नज़ारी

आपको seahorseउबंटू पर खोज (या सीधे लॉन्च) करनी पड़ सकती है ।
कांव-कांव

3
मैं आपके लिए कर्ज में हूँ सर
बेकनबेस्टनज़

46

github आपको ssh कुंजी के द्वारा पहचानता है जो git से किसी सेटिंग द्वारा नहीं देखी जाती है।

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

ssh-add -lयह निर्धारित करने के लिए उपयोग करें कि आपकी कीरिंग में कौन-सी कुंजियाँ हैं, और ssh-add -d <keyfile>अपनी कीरिंग से एक कुंजी निकालने के लिए, यदि यह दोसात्मक कार्य 'अवांछित' ssh कुंजी को हटा दें ~/.ssh/config

स्रोत

NB: Github अभी भी केवल ईमेल के आधार पर आपकी प्रतिबद्धता की पहचान करेगा।


5
यह एकमात्र उत्तर है जो बताता है कि मेरे user.emailसही तरीके से सेट होने के बावजूद यह गलत तरीके से जीथब खाते का उपयोग क्यों कर रहा था । काश मैं पांच बार उठ सकता था।
क्रिस

1
मेरे मामले में ssh की को हटाना एक आकर्षण की तरह काम करता हैssh-add -D
rPawel

यह एकमात्र उत्तर था जिसने मेरे लिए काम किया। धन्यवाद!!
एडवर्ड हार्टनेट

एकमात्र विकल्प जिसने काम किया। यह समझ में नहीं आता है कि git सही कुंजी क्यों नहीं उठाएगा। चूँकि हम ssh फाइल का उल्लेख कर रहे हैं, इसे विन्यास में उपयोग करना है।
रेवंत कुमार

जब मुझे ssh-add -lकोई जवाब मिलता है तो मुझे मदद नहीं मिलती है यह पता लगाता है कि 4096 SHA256:lotsOfGibberish,about40chars (RSA)मुझे यह जानकारी नहीं है।
मिगेलमुनोज

20

अन्य उपयोगकर्ताओं द्वारा दिए गए सभी शानदार विकल्पों के बावजूद, इसे ठीक करने का एकमात्र तरीका पूरी तरह से गिट को फिर से स्थापित करना और git config --global push.default simpleअच्छी साख को फिर से लिखना है।


@VonC, आपके उत्तर के बावजूद बढ़िया था, यह बिल्कुल काम नहीं किया। यह एकमात्र समाधान है जिसने मेरे लिए काम किया। मुझे आश्चर्य है कि अगर यह git मुद्दा या OSX है ...
swilgosz

40
git config --system --unset credential.helperमेरे लिए काम किया, अब मुझे फिर से पुश पर अपने GitHub क्रेडेंशियल्स के लिए कहा गया है और सही उपयोगकर्ता आईडी और पासवर्ड की आपूर्ति कर सकता है।
कोडमैनएक्स

@CoDEmanX तुम्हारा एकमात्र जवाब था जो मेरे लिए काम किया। किसी और के लिए जो इस पार आता है, यह इसलिए था क्योंकि हम जीथब के साथ काम पर 2FA का उपयोग करते हैं और मुझे पहले जीथब गुई से एक टोकन उत्पन्न करने की आवश्यकता थी और कमांड लाइन से मेरे पासवर्ड के रूप में उपयोग करने के बाद मैंने अपने स्थानीय क्रेडेंशियल्स को रीसेट कर दिया था! बाहर की जाँच https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/ जानकारी के लिए
vancouverwill

इसकी सिर्फ .gitconfig फ़ाइल है। या तो इसे हटा दें या इसे रीसेट करें ... मुझे इस समस्या का सामना करना पड़ा जब मैंने एक साक्षात्कार के लिए एक परीक्षण परियोजना प्रस्तुत की। लानत है, हालांकि दर्द होता है। इसकी विन्यास फाइल के साथ
गिरीश

git config --system --unset credential.helperविंडोज 10 गिट बैश पर काम नहीं करता है:error: could not lock config file C:/Program Files/Git/mingw64/etc/gitconfig: Permission denied
एलेक्स

17

मैं विंडोज 10 का उपयोग कर रहा हूं और मैंने आज उसी मुद्दे का सामना किया। मेरे मामले में अलग-अलग उपयोगकर्ता के लिए मेरी साख विंडोज क्रेडेंशियल प्रबंधक द्वारा बचाई गई थी। इस प्रकार, नीचे दिए गए आदेश के साथ git क्रेडेंशियल्स को हटाना / हटाना, git config --global --unset credential.helper

मदद नहीं की। मुझे नीचे दिए गए तरीके से मैन्युअल रूप से विंडोज में प्रविष्टि को हटाना पड़ा,

प्रारंभ -> नियंत्रण कक्ष ---> उपयोगकर्ता खाते ---> प्रबंधक आपकी साख ---> विंडोज क्रेडेंशियल

फिर एक प्रविष्टि की तरह खोजें, git: https://github.com और इसे हटा दें। यह उसके बाद ठीक काम करता है।


गौतम को धन्यवाद
बाल्टीक

धन्यवाद, मैंने विंडोज पर पहले कभी इस मुद्दे को नहीं रखा था लेकिन आज मेरे पास यह मुद्दा था और मुझे आपकी टिप्पणी यहाँ देखकर खुशी होगी।
राकोदेव

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

15

ऐसा लगता है कि मेरा टर्मिनल मेरे उपयोगकर्ता नाम के साथ करता है, लेकिन उन्हें दूसरे के साथ धक्का देता है

लेखक और कमिटेटर का नाम और ईमेल (जो GitHub के लिए महत्वपूर्ण हैं) से लिया गया है:

git config user.name
git config user.email

हालांकि, में उल्लेख किया है के रूप में git configऔर git commit-tree, उन मूल्यों को वातावरण चर द्वारा अधिरोहित जा सकता है:

GIT_AUTHOR_NAME
GIT_AUTHOR_EMAIL
GIT_COMMITTER_NAME
GIT_COMMITTER_EMAIL

इसलिए उन चरों को दोबारा जांचें।

अगर मैं उपयोगकर्ता को .git/configरिपॉजिटरी के लिए बाध्य करता हूं तो चीजें सामान्य रूप से काम करती हैं लेकिन मुझे नहीं लगता कि यह अच्छा विकल्प है।

लेकिन इसका एक अच्छा समाधान होना चाहिए।
Https url का उपयोग करते समय, मैं हमेशा यह सुनिश्चित करने के लिए उपयोगकर्ता को निर्दिष्ट करता हूं कि सही उपयोगकर्ता के साथ प्रमाणीकरण किया गया है।

http://USER@github.com/USER/REPO.git

आपके उत्तर के लिए धन्यवाद VonC! दुर्भाग्य से, मेरी git configसाख सही है और मेरी /username/.bashrcफाइल में कोई एनवायरनमेंट चर नहीं है ...
यिनफ़ेई

@ यिनफ़ेई 84, फिर भी, अपने ' env' आउटपुट की जाँच करें ।
VonC

@ यिनफ़ेई 84 क्या होगा अगर (इसका परीक्षण करने के लिए) आप उन चर को स्पष्ट रूप से सेट करते हैं, और एक प्रतिबद्ध और एक धक्का देने की कोशिश करते हैं। क्या वह बेहतर काम करेगा?
वोनक

मैंने बस किया और समस्या बनी रहती है।
यिनफ़ेई

2
मुझे माफ करना अगर मैं साफ कर देता हूं, तो मेरा मतलब है कि अगर यह उपयोगकर्ता को पथ पर मजबूर करता है तो यह काम करता है जैसे:http://USER@github.com/USER/REPO.git
यिनफ़ेई

9

एक अस्थायी समाधान पहले चलाया जाता है killall ssh-agentफिर आपके द्वारा उपयोग किए जाने वाले खाते के लिए उत्पन्न ssh कुंजियों को जोड़ेंssh-add ~/.ssh/id_4shameer

जब हम प्रकार की त्रुटि प्राप्त करेंगे, तो यह हमें कई गितुब खाते पर काम करने में मदद करेगा ERROR: Permission to user/repo-git.git denied to username.


1
मुझे लगता है कि किसी भी हटा दिया करने के बाद किया था Github से प्रवेश चाबी का गुच्छा MacOS , और यह पूरी तरह से काम किया। दो बिंदुओं के बाद killall, ssh- एजेंट को फिर से शुरू करना होगा eval "$(ssh-agent -s)", और ssh-addकमांड को निष्पादित करना होगा sudo
अर्विमेटल जूल

7

यदि आप मैक का उपयोग कर रहे हैं, तो किचेन एक्सेस पर जाएं और उस उपयोगकर्ता के प्रवेश को हटा दें जिसके लिए आपको जीआईटी एक्सेस नहीं चाहिए।


4

मेरे लिए समाधान मेरे ~ / .shsh / config फ़ाइल में github के लिए एक प्रविष्टि जोड़ने का था। मुझे यह करना पड़ा क्योंकि:

  1. मेरे पास एक ही कुंजी के साथ कई गितुब खाते हैं (यह मत करो!)
  2. जब आप ssh का उपयोग करके 'पुश पुश' करते हैं, तो आपका कंप्यूटर id_rsa को डिफ़ॉल्ट रूप से पकड़ लेता है और इसका उपयोग ssh पहचान के रूप में करता है।
  3. गितुब नहीं कर सकते (बिना मतलब के) जो आप खाते का मतलब निकालते हैं, क्योंकि यह उस खाते को बंद कर रहा है जो इसे प्रस्तुत किया गया है, जिसे यदि एक से अधिक खातों से जोड़ा जाता है, तो इस तरह से दर्द होता है। हत्यारा है, एक लंबे समय के लिए, मैं इस से दूर हो रहा था और चीजें अभी काम कर रही थीं।

मेरे द्वारा जोड़ी गई प्रविष्टि है:

Host github.com
    Hostname github.com
    Port 22
    User waterproofpatch
    IdentityFile ~/.ssh/id_rsa_waterproofpatch

मैंने एक नई कुंजी बनाई है , जो मेरे खाते के लिए अद्वितीय है, जैसा कि id_rsa_waterproofpatch है। मेरे ssh config में यह प्रविष्टि निर्दिष्ट करती है कि github.com के कनेक्शन के लिए, मैं इस कुंजी को प्रस्तुत करना चाहता हूं।

एक और समाधान शायद मेरे लिए दूसरे खाते में लॉग इन करने के लिए होता, डुप्लिकेट ssh कुंजी को हटा दें।


2

मेरे पास एक समान मुद्दा था और यह पता चला कि समस्या यह थी कि सार्वजनिक कुंजी फ़ाइल में अंतिम पंक्ति पर मेरा ईमेल पता था। यह मेरे विन्यास में उपयोगकर्ता सेटिंग को ओवरराइड करने के लिए लग रहा था। जैसे ही मैंने अपना ईमेल .pub फ़ाइल से निकाला (और अपने रेपो में पुनः अपलोड किया गया) सही उपयोगकर्ता का उपयोग करके जुड़ा हुआ।


इसने मेरे लिए काम किया। यह सुनिश्चित नहीं है कि सार्वजनिक कुंजी फ़ाइल पर पहचानकर्ता मूल रूप से 'नाम @ डोमेन' प्रारूप में था, लेकिन यह था।
ब्रायन वैगनर

1

मेरे लिए जो काम किया वह ssh URL के बजाय Github repo के https URL का उपयोग करना था । मैंने गितुब परियोजना पृष्ठ पर जाकर https क्लिप को अपने क्लिपबोर्ड में कॉपी किया, और फिर इसे नीचे दिए गए दूसरे कमांड में चिपकाया:

git remote rm origin
git remote add origin https://[...]

1

क्या दर्द है बट में!

संकट:

  1. गिट हब पर रेपो बनाएं
  2. स्थानीय मशीन का क्लोन
  3. 403 धक्का नहीं दे सकता।

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

मैं एक पर काम कर रहा हूँ MAC। यहाँ मैंने आखिरकार क्या किया

1) क्रेडेंशियल निकालें

  • कुछ कैसे क्रेडेंशियल हेल्पर osxkeychain के लिए तैयार हो गया
  • जब मैंने चाबी का गुच्छा शुरू किया, तो लॉगिन, पासवर्ड पर क्लिक करें और जीथब के लिए खोजा मुझे 3 प्रविष्टियां मिलीं। मुझे पता नहीं है कि चाबी का गुच्छा कैसे संभव हो सकता है कि कौन सा उपयोग करना है

ए। आपको यह पता लगाने की आवश्यकता है कि क्रेडेंशियल.हेलर कहाँ कॉन्फ़िगर किया गया है

git config --local credential.helper
git config --global credential.helper
git config --system credential.helper

ख। एक बार सही अंजीर फ़ाइल को खोजने के बाद इसे इस प्रकार हटा दें

git config --global --unset credential.helper

अब अपने स्थानीय रेपो में मैंने .it / config फ़ाइल हैक कर ली है

मैं बदल गया

    url = https://github.com/aedavids/lab3RotationProject.git

सेवा

    url = https://myGitHubUserId@github.com/aedavids/lab3RotationProject.git

1

मेरी विशेष मामले में, मुद्दा यह है कि मैं एक का उपयोग कर रहा था .netrcउपयोग करने के लिए github.comऔर यह एक अलग उपयोगकर्ता से एक टोकन के साथ विन्यस्त किया गया था:

machine github.com login <another-user-token>

0

क्लीयरिंग किचेन ने मदद नहीं की ... मुझे ssh-add -Dकुंजी को फिर से जोड़ना और जोड़ना पड़ाssh-add <keyfile>


0

मैंने MacOS हाई सिएरा पर id_rsa और id_rsa.pub फ़ाइल को हटाने (या * .bak का नाम बदलने) के लिए इस समस्या को हल किया। यहां से आइडिया

मेरे पास कस्टम होस्ट रीडायरेक्ट ~ / .ssh / config है जिसे लागू किया जाना चाहिए लेकिन गलत उपयोगकर्ता का उपयोग करने से पहले मैंने दो फ़ाइलों का नाम बदल दिया ...


0

मेरे लिए यही काम आया:

  1. साख बदलना। अंदर-ही-क्रेडेंशियल्स
  2. वैश्विक user.name और user.email को अंदर .ITconfig में बदलना

0

रेपो को हटाने और इसे फिर से जोड़ने के लिए मैंने क्या काम किया:

git remote rm origin
git remote add origin git@github.com:fguillen/MyApp.git

0

मुझे अपने git की स्थापना रद्द करने के बाद भी windows10 में समान समस्या है, जैसा कि @ user542833 का कहना है कि यह इसलिए है क्योंकि विंडोज़ कैश और आपको अपनी विंडो में Github क्रेडेंशियल्स को हटा देना चाहिए Credential Managerऔर जब आप फिर से पुश करने का प्रयास करते हैं, तो विंडोज़ आपकी साख पूछते हैं और फिर से सेट करते हैं


यह मेरे लिए कभी-कभी काम करता था, लेकिन कभी-कभी ऐसा नहीं होता था।
bvdb

0

नए खाते पर एक नए GitHub पृष्ठ रेपो में धकेलने की कोशिश करते समय बस इसे 6 घंटे बिताए।

Config user.name और user.email को सेट करने के बाद भी यह मेरे मुख्य खाते में डिफ़ॉल्ट होगा।

ऐसा इसलिए है क्योंकि ssh कुंजी डिफ़ॉल्ट रूप से id_rsa (मेरा मुख्य खाता) होगी।

मेरे द्वारा चलाए जा रहे नए खाते का उपयोग करने के लिए:

ssh-add ~/.ssh/my_new_key

जो तब धक्का देने पर नई कुंजी का उपयोग करेगा।

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