Git: "कृपया मुझे बताएं कि आप कौन हैं" त्रुटि


226

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

19:00:28: *** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

क्या मुझे git pull origin masterऐप सर्वर को अपडेट करने के लिए हर बार एक सरल काम करने के लिए इसे सेट करने की आवश्यकता है ? इस व्यवहार को ओवरराइड करने के लिए वैसे भी क्या है ताकि नाम और ईमेल सेट न होने पर यह त्रुटि न हो?


3
मैंने जो कुछ भी नहीं किया है उससे, लेकिन फिर मैं आपके नाम और ईमेल को जोड़ने के साथ कोई समस्या नहीं देखता, भले ही वे सिर्फ नकली नाम और ईमेल हों।
शॉन

10
हां, आपको इन्हें सेट करना होगा, अगर "सरल" git pullएक कमिट बनाने जा रहा है, क्योंकि इसने मर्ज किया था, उदाहरण के लिए।
कांटा 0

1
आप वन-वे परिनियोजन के परिदृश्य का वर्णन करते हैं। मैं किसी भी ऑटोमेटिक कमिट्स से बचने के लिए क्रेडेंशियल्स नहीं जोड़ूंगा। हां, आपको इस त्रुटि के साथ समस्या दिखाई देगी, लेकिन इसका मतलब यह होगा कि कोई व्यक्ति उत्पादन के आस-पास है और फ़ाइलों को मैन्युअल रूप से मर्ज को ट्रिगर करता है।
एलेक्स स्क्रीपनीक

जवाबों:


249

जब मैं phit स्क्रिप्ट को init और कमिट पर कॉल करता हूं, तो मैं उस पर कई घंटे बिताता हूं। और मैंने पाया काम का प्रवाह होना चाहिए:

1.git init
2.git config user.name "someone"
3.git config user.email "someone@someplace.com"
4.git add *
5.git commit -m "some init msg"

यदि आप स्वैप [23] और 1 करते हैं, तो विन्यास बिल्कुल काम नहीं करेगा।

काश यह कुछ मदद करेगा।


यह एक गिट रिपॉजिटरी में प्रवेश करने के लिए सही अभ्यास है। लेकिन रेपो @gfxmonk समाधान को अपडेट करने के लिए बेहतर है
डेविसिन

क्या आप बता सकते हैं कि यह कैसे काम कर रहा है और ऐसा करने से पहले यह त्रुटि क्यों दे रहा है?
चिन्मय बी

1
आप कमांड में --globalस्विच जोड़ सकते हैं git config, और अपने ओएस खाते के लिए एक बार कर सकते हैं । उसके बाद चरण 2-3 की आवश्यकता नहीं है।
एक्स-यूरी

50

इसके बजाय git pullआप कर सकते हैं:

git fetch
git reset --hard origin/master

उनमें से किसी को भी आपको अपना git उपयोगकर्ता नाम / ईमेल कॉन्फ़िगर करने की आवश्यकता नहीं है।

यह किसी भी स्थानीय परिवर्तन / कमिट को नष्ट कर देगा, और आपके HEAD को एक कमिट (शाखा नहीं) की ओर इंगित करेगा। लेकिन उनमें से कोई भी ऐप सर्वर के लिए एक समस्या नहीं होनी चाहिए क्योंकि आपको स्थानीय परिवर्तन नहीं करना चाहिए या उस रिपॉजिटरी के लिए प्रतिबद्ध नहीं होना चाहिए।


इस स्थिति में गिट पुल का ऑटोमेकर खतरनाक है, रीसेट करना बेहतर है।
डेविसिन

क्या इसका उपयोग करना बेहतर नहीं होगा git fetch && git reset --hard HEAD?
जेकूर

@ स्कोप नोप: git reset --hard HEADकेवल आपके असम्बद्ध परिवर्तनों को दूर करता है, यह नहीं बदलता है कि आपका कार्यक्षेत्र क्या आधारित है (क्योंकि परिभाषा के अनुसार आप पहले से ही HEAD पर हैं)
gfxmonk

33

यदि आप sourcetree का उपयोग कर रहे हैं: रिपोजिटरी -> रिपॉजिटरी सेटिंग्स -> उन्नत -> अनचेक करें "वैश्विक उपयोगकर्ता सेटिंग्स का उपयोग करें" बॉक्स

मेरे लिए बहुत अच्छा काम किया।


मेरे मामले में मुझे इसे वापस जाँचना था, लेकिन फिर भी! आपकी मदद के लिए धन्यवाद
Karoly

32

यह मेरे लिए काम करता है, यह प्रयास करें .. आपको अपने टर्मिनल को रिमोट एक्सेस से कॉन्फ़िगर करने की आवश्यकता है।

     git config --global user.name "abc"
     git config --global user.email "abc@example.com"

10

${HOME}/.gitconfigउचित सामग्री के साथ, या कहीं से एक मौजूदा एक की प्रतिलिपि बनाने के लिए अपनी बूटस्ट्रैप प्रक्रिया को अपडेट करें ।


9
git config user.email "insert github email here"
git config user.name "insert github real name here"

यह मेरे लिए बहुत अच्छा काम किया।


4

एक ही मुद्दा मेरे साथ था और डिफ़ॉल्ट नाम और ईमेल रिपॉजिटरी सेटिंग्स जोड़कर इसे हल किया।

जैसा कि डोरोन ने सुझाव दिया था -

यदि आप sourcetree का उपयोग कर रहे हैं: रिपॉजिटरी -> रिपॉजिटरी सेटिंग्स -> उन्नत -> अनचेक करें "वैश्विक उपयोगकर्ता सेटिंग्स का उपयोग करें" बॉक्स।

डिफ़ॉल्ट नाम और ईमेल पता जोड़ें।


4

मेरे मामले में मुझे "ईमेल" शब्द "ई" याद आ रहा था जैसा कि चाड ने ऊपर कहा है, लेकिन मुझे लगता है कि आपके साथ ऐसा नहीं है। कृपया यह देखने के लिए कि क्या सब कुछ अपेक्षानुसार खींच रहा है, निम्नलिखित कमांड को हिट करें।

git config -l

4

आपको उस तरह अपना ईमेल लिखना होगा

 git config --global user.email "you@example.com"

फिर: उपयोगकर्ता नाम लिखें

 git config --global user.name "Your Name"

उसके बाद Poupup विंडो दिखाई देगी

लिखो USERNAME & EMAIL for Acount आप योगदान देना चाहते हैं


3

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


2

क्या मुझे ऐप सर्वर को अपडेट करने के लिए हर बार एक साधारण गिट पुल ओरिजिन मास्टर करने के लिए इसे सेट करने की आवश्यकता है? इस व्यवहार को ओवरराइड करने के लिए वैसे भी क्या है ताकि नाम और ईमेल सेट न होने पर यह त्रुटि न हो?

यह सिर्फ एक बार पूछेगा और यह सुनिश्चित कर लेगा कि इस मशीन के लिए rsa सार्वजनिक कुंजी आपके github खाते में जोड़ दी गई है, जिस पर आप एक पुल अनुरोध करने या पारित करने का प्रयास कर रहे हैं।

इस पर अधिक जानकारी मिल सकती है: यहाँ


1
लिंक टूट गया है
ऐलिस श्वार्ज

2

मेरे पास यह एक दोषपूर्ण त्रुटि संदेश के रूप में था: उक्त त्रुटि के साथ एक पर्ल सीजीआई प्रक्रिया (जीथब से ऑटो-तैनाती के लिए एक वेबहूक) में विफल हुई
git pullसीएमडी लाइन पर ठीक काम किया
git pull

git statusकिसी क्लैशिंग फ़ाइल की पहचान करना । इसे छाँटने से समस्या ठीक हो गई।

बाद में जब मैंने कुछ कॉन्फिग सेटिंग्स बदलीं तो समस्या फिर से सामने आ गई।

इस बार, $ HOME और $ USER env var की स्थापना ने इसे ठीक कर दिया (एक CGI प्रक्रिया में डिफ़ॉल्ट रूप से परेशान हैं)


2

Config फ़ाइल पर एक नज़र है।

रिपॉजिटरी> रिपॉजिटरी सेटिंग्स> कॉन्फिग फाइल को एडिट करें।

जांचें कि क्या [user]अनुभाग मौजूद है। यदि उपयोगकर्ता अनुभाग अनुपलब्ध है, तो उसे जोड़ें।

उदाहरण:

[user]
name = "your name"
email = "your email"

2

मैं हरोकू cli 1 का उपयोग करता हूं। सभी उपयोगकर्ता नाम और उपयोगकर्ता ईमेल का उपयोग करना चाहिए

$ git config --global user.email .login ईमेल।

$ git config --global user.name .heroku नाम।

  1. git पुल [git url]
  2. git init
  3. git add *

    5 git कमिट-मी "कॉन्फ़िगर user.name के बाद, यूजर ईमेल"

  4. git धक्का heroku मास्टर


2

मैं जेनकिंस का उपयोग करता हूं और एक रिलीज करने की कोशिश करते समय इस समस्या में भाग गया (जिसमें एक कमिट की आवश्यकता होती है)। मुद्दों को ठीक करने के लिए, मुझे एक कस्टम उपयोगकर्ता नाम / ई-मेल पता (चित्र देखें) जोड़ना होगा। कस्टम उपयोगकर्ता नाम / ई-मेल पतायह सुनिश्चित करने के लिए कि जब कोड की जाँच की गई थी तो उसने रिलीज़ करते समय मेरे उपयोगकर्ता के नाम / ईमेल पते का उपयोग किया था। ध्यान दें, यह कॉन्फ़िगरेशन जेनकिंस मल्टीब्रांच पाइपलाइन परियोजना कॉन्फ़िगरेशन से उपलब्ध है।


2

git pullइसकी आवश्यकता नहीं होनी चाहिए। हालांकि अगर पुल एक मर्ज संघर्ष का कारण बनता है, तो यह नेस्सेरी लगता है।


2

IMHO, इस त्रुटि को हल करने का उचित तरीका है अपनी वैश्विक गिट विन्यास फाइल को कॉन्फ़िगर करना।

ऐसा करने के लिए निम्नलिखित कमांड चलाएँ: git config --global -e

एक संपादक दिखाई देगा जहां आप अपने डिफ़ॉल्ट गिट कॉन्फ़िगरेशन डाल सकते हैं।

यहाँ कुछ हैं:

[user]
    name = your_username
    email = your_username@users.noreply.github.com 
[alias]
    # BASIC
    st = status
    ci = commit
    br = branch
    co = checkout
    df = diff

अधिक जानकारी के लिए, Git - Git कॉन्फ़िगरेशन को अनुकूलित करना देखें

जब आप एक आदेश की तरह देखते हैं, git config...

$ git config --global core.whitespace \
    trailing-space,space-before-tab,indent-with-non-tab

... आप इसे अपने वैश्विक git config फाइल में डाल सकते हैं:

[core]
   whitespace = space-before-tab,-indent-with-non-tab,trailing-space

एक बंद कॉन्फ़िगरेशन के लिए, आप कुछ का उपयोग कर सकते हैं git config --global user.name 'your_username'

यदि आप विश्व स्तर पर अपने गिट कॉन्फ़िगरेशन को सेट नहीं करते हैं, तो आपको स्थानीय रूप से काम करने वाले प्रत्येक और हर प्रतिनिधि के लिए ऐसा करने की आवश्यकता होगी।

User.name और user.email सेटिंग्स git को बताती हैं कि आप कौन हैं, इसलिए बाद के git commitकमांड शिकायत नहीं करेंगे,*** Please tell me who you are.

कई बार, आपके द्वारा चलाए जाने वाले कमांड्स सुझाव देते हैं कि वे नहीं हैं जो आपको चलाने चाहिए। इस बार, सुझाए गए आदेश खराब नहीं हैं:

$ git commit -m 'first commit'

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

युक्ति: जब तक मैं git से बहुत परिचित नहीं हो जाता, तब तक अपनी प्रोजेक्ट फ़ाइल का बैकअप बना लेता हूं - सुझाए गए git कमांड चलाने से पहले और मेरे द्वारा सोची गई चीजों की खोज करने से पहले - कुछ ही मौकों पर अपने बेकन को बचाया।


2

यह ईमेल पते को ऑटो-डिटेक्ट करने में असमर्थ है।

डिफ़ॉल्ट रूप से यह आपके सिस्टम उपयोगकर्ता नाम की तरह लेता है abc@xyz.none

तो आपको नीचे अपना ईमेल सेट करना होगा:

git config user.email "someone@gmail.com"

ईमेल सेट करने के बाद आप git कमांड चला सकते हैं और अपने बदलाव कर सकते हैं।

  1. git init
  2. git add *
  3. git कमिट -म "कुछ इनिट संदेश"

1

मैं कुछ फ़ाइलों को करने का प्रयास करते हुए इस त्रुटि संदेश में भाग गया।

बस git fetchफिर से दौड़ना मेरी कोशिश फिर से मेरे लिए काम किया।


0

I का उपयोग ठीक करने के लिए: git config --global user.email "you@example.com" और काम करता है।

user.mail कोई काम नहीं, एक ई। टाइपो डाल करने की आवश्यकता हो सकती है?


मुझे लगता है कि ओपी जानना चाहता है कि क्या यह वास्तव में प्रत्येक अद्यतन के लिए आवश्यक है।
12:59

-5

वह एक टाइपो है। आप गलती से साथ कोई "" user.mail "निर्धारित किया है "। वैश्विक कॉन्फ़िगरेशन में "उपयोगकर्ता मेल" सेट करके इसे ठीक करें

git config --global user.email "you@example.com"

यहां समाधान मिला

https://stackoverflow.com/a/14662703


3
आप इस पृष्ठ पर "'user.mail' 'नहीं' e 'के साथ कहाँ देखते हैं?
चाड नूइस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.