2017-04-12 10 views
43

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

संदेश है:

! [remote rejected] master -> master (push declined due to email privacy restrictions) 
error: failed to push some refs to '[email protected]:FranckFreiburger/vue-resize-sensor.git' 


git did not exit cleanly (exit code 1) (3838 ms @ 12/04/2017 21:23:11) 

मैं अब क्या करना चाहिए?

उत्तर

35

यह new GitHub setting के कारण होने की संभावना है जो कमांड लाइन को ब्लॉक करता है जो आपके ईमेल पते का खुलासा करता है।

अपने email settings में "ब्लॉक कमांड लाइन जो मेरे ईमेल का पर्दाफाश करता है" बॉक्स को अनचेक करने का प्रयास करें और फिर फिर से दबाएं।

+6

इस विकल्प को अपना निजी ईमेल पता प्रकट हो जाएंगे अनचेक करते हैं? –

+8

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

106

रिमोट रिपोजिटरी को एक प्रतिबद्धता को धक्का देने के लिए कॉन्फ़िगर किया गया है जो आपके व्यक्तिगत ई-मेल पते को प्रकट करेगा। उदाहरण के लिए गिटहब में आपने Block command line pushes that expose my email चेकबॉक्स को enable this पर चेक किया है।

Block command line pushes that expose my email

आप उस सेटिंग अचिह्नित ज़ाहिर है, यह है, दुनिया में हर किसी के लिए अपने निजी ई-मेल एड्रेस सामने आ जाएगी सकते हैं के रूप में लेखक की जानकारी अपने भंडार के उपयोग के साथ किसी के द्वारा पठनीय है।

इसके बजाय, इस कार्य करें:

  1. आप अपने व्यक्तिगत ई-मेल एड्रेस, जो Git में अपने प्रतिबद्ध के लिए डिफ़ॉल्ट रूप से प्रयोग किया जाता है देख सकते हैं:

    git config --global user.email 
    
  2. में अपने GitHub noreply address का पता लगाएं अपने गिटहब का Personal Settings → Emails। यह के विवरण में उल्लिखित है मेरा ईमेल पता निजी चेकबॉक्स रखें।

    {ID}+{username}@users.noreply.github.com 
    

    Keep my email address private

  3. बदलें वैश्विक उपयोगकर्ता ई-मेल एड्रेस अपने GitHub noreply पता होना करने के लिए की स्थापना:

    git config --global user.email {ID}+{username}@users.noreply.github.com 
    
  4. आमतौर पर, यह अपने उपयोगकर्ता नाम एक अद्वितीय पहचानकर्ता के साथ शुरू होता है, साथ ही अपनी अंतिम प्रतिबद्धता पर लेखक की जानकारी रीसेट करें:

    git commit --amend --reset-author 
    

    यदि आपके पास अपने निजी ई-मेल पते के साथ कई प्रतिबद्धताएं हैं, तो this answer देखें।

  5. अब आप प्रतिबद्धता को ई-मेल पते के साथ धक्का दे सकते हैं, और भविष्य में काम करने के लिए भी ई-मेल पता होगा।

    git push 
    
+0

यह अभी भी मेरे ई-मेल के बारे में मुझे सूचित करेगा। मुझे यह भी करना था कि 'git config --global user.email none' का उपयोग करके अपना ईमेल' none' 'पर सेट करना है। – adamczi

+3

नहीं, यह मेरी तरफ एक आकर्षण की तरह काम करता था, शायद आप एक कदम भूल गए, @adamczi। यह स्वीकार्य उत्तर होना चाहिए, क्योंकि यह दोनों संभावित समाधान बताता है। – Ioanna

+3

धन्यवाद, अनुमान है कि मैंने चरण 2 में कोई त्रुटि की हो सकती है। ध्यान देने योग्य मूल्य यह है कि आपको स्पष्ट रूप से @ Virtlink के निर्देशों का पालन करना चाहिए, क्योंकि ' @ users.noreply.github.com' के अलावा किसी अन्य ई-मेल को सेट करना (जैसे मैं 'none'' पर सेट कर रहा हूं) परिणामस्वरूप आपके प्रोफाइल पेज पर ग्राफ में आपकी प्रतिबद्धता दिखाई नहीं देगी। – adamczi

संबंधित मुद्दे