क्या Git मेरे ई-मेल पते को सार्वजनिक रूप से उजागर करता है?


95

Git पर अब तक मैंने जो मार्गदर्शिकाएँ पढ़ी हैं, उनका कहना है कि मुझे विन्यास में जाना चाहिए और अपना नाम और अपना ई-मेल पता निर्दिष्ट करना चाहिए। वे विस्तृत नहीं हैं; वे सिर्फ यह करने के लिए कहते हैं।

Git को मेरे ई-मेल पते की आवश्यकता क्यों है? और, इससे भी महत्वपूर्ण बात, अगर मैं अपने रेपो को सार्वजनिक रूप से उपलब्ध करवाता हूं, उदाहरण के लिए गिटहब के माध्यम से, क्या मेरा ई-मेल पता सभी को दिखाई देगा (स्पैम्बोट्स सहित)?


19
मुझे लगता है कि यह प्रोग्रामिंग से संबंधित टूल के बारे में एक वैध (हालांकि गैर-तकनीकी) प्रश्न है - जैसे कि एसओ पर बहुत सारे अन्य प्रश्न - और "नहीं-प्रोग्रामिंग-संबंधित" के रूप में अस्वीकृत होने के लायक नहीं है।
जोनीक

3
GitHub अब (अगस्त 2013) आपको अपना ईमेल पता निजी रखने की अनुमति देता है! देखें नीचे मेरा उत्तर । आप एक नकली ईमेल पता भी दर्ज कर सकते हैं, ताकि आप इसे उन कमिट में उपयोग न कर सकें, जिन्हें आप GitHub में ला रहे हैं।
VonC

जवाबों:


36

Git आपको पहचानने के लिए आपके ईमेल पते का उपयोग करता है, साथ ही साथ अन्य कार्य भी करता है (जैसे कि GPG कुंजी के साथ टैग पर हस्ताक्षर करना)। आपका ईमेल पता आपके द्वारा निर्दिष्ट नाम के साथ प्रतिबद्ध लॉग्स आदि में आपकी पहचान के हिस्से के रूप में एम्बेडेड हो जाता है। उदाहरण के लिए, कमिट लॉग में "लेखक" फ़ील्ड निम्नानुसार दिखाई देगी:

Author: Joe White <joewhite@mysite.com>

इसलिए यह जानकारी किसी भी रेपो की प्रतिलिपि के साथ उपलब्ध है, क्योंकि यह एक पहचानकर्ता के रूप में कार्य करता है।

आपका ईमेल शायद स्पैम्बोट्स को दिखाई नहीं देगा, हालाँकि, जब तक आप Gitweb, या GitHub जैसी सेवा का उपयोग नहीं करते, अपने रेपो को वेब इंटरफ़ेस के माध्यम से उपलब्ध कराने के लिए (केवल इसे इंटरनेट पर डालने से ऐसा नहीं होता है)।

मुझे लगता है कि आप एक नकली ईमेल पते को भर सकते हैं या एक रिक्त स्ट्रिंग या स्थान या कुछ का उपयोग कर सकते हैं (मुझे नहीं लगता कि Git ईमेल के प्रारूप या वैधता की जांच करता है), लेकिन ईमेल उपयोगी है यदि कोई है जो क्लोन को भेजने की आवश्यकता है आप एक पैच या किसी तरह से आपसे संपर्क करते हैं।


3
यकीनन github, gitweb et al के पास ईमेल पतों को देखने के लिए एक विकल्प होना चाहिए, जैसे मेलिंग सूची संग्रह दर्शक करते हैं। हालाँकि यह एक वैध ईमेल पता है, लेकिन यह एक कन्वेंशन है, 'git सेंड-ईमेल' जैसे उपकरण यह मानते हुए लिखे गए हैं कि यह सच है (उदाहरण के लिए पैच लेखक, cc'ing पैच)
araqnid

2
आप अन्य पहचान का उपयोग करने के लिए git को कॉन्फ़िगर कर सकते हैं जो कि user.name और user.email द्वारा दिए गए टैग पर हस्ताक्षर करने के लिए GPG कुंजी के लिए दिया गया है
Jakub Nar tagsbski

पुराने केंद्रीकृत संस्करण नियंत्रण प्रणालियां एक कमिट (एक परिवर्तन के) के लेखक की पहचान के लिए "उपयोगकर्ता नाम" का उपयोग करती हैं। नाम + ईमेल अच्छी पहचान है; हालांकि यह वास्तविक ईमेल होने की जरूरत नहीं है।
जैकब नारबस्की

3
GitHub का एक अपडेट है जहां आप अपनी प्रोफ़ाइल से जुड़े एक नकली ई-मेल पते का उपयोग कर सकते हैं - stackoverflow.com/a/20533922/2158473
RyPeck

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

43

अप्रैल 2017 को अपडेट करें

" निजी ईमेल देखें , अब और अधिक निजी "

GitHub ने कुछ समय के लिए लेखक वेब-आधारित कमिट्स के लिए वैकल्पिक "नॉरवर्ड" ईमेल पते का उपयोग करने का समर्थन किया है। आज से, यह सुनिश्चित करने के लिए एक और तरीका है कि आप अनजाने में अपना ईमेल पता प्रकाशित न करें जब कमांड लाइन के माध्यम से GitHub पर आते हैं।

Git आपके ईमेल पते का उपयोग आपके नाम को किसी भी लेखक के साथ जोड़ने के लिए करता है। एक बार जब आप GitHub पर सार्वजनिक रिपॉजिटरी में अपने कमिट को पुश करते हैं, तो लेखक मेटाडेटा भी प्रकाशित हो जाता है।

यदि आप यह सुनिश्चित करना चाहते हैं कि आप गलती से अपना ईमेल पता प्रकाशित न करें, तो बस "मेरा ईमेल पता निजी रखें" और "ब्लॉक कमांड लाइन धक्का देती है जो आपके ईमेल सेटिंग्स में मेरे ईमेल को उजागर करता है" को ब्लॉक करती है

https://cloud.githubusercontent.com/assets/33750/24673856/a995cb74-1947-11e7-8653-65bc604a4101.png

नोट: जैसा कि orev द्वारा नीचे टिप्पणी की गई है , Git कुछ भी उजागर नहीं करता है। GitHub , एक Git रिपॉजिटरी होस्टिंग सेवा, हो सकता है। वह स्थान जहाँ आप अपने स्थानीय गिट रेपो को आगे बढ़ा रहे हैं, मेटाडेटा को उजागर कर सकते हैं।


नोट: 9 अगस्त 2013 से, अब आप अपना ईमेल पता निजी रख सकते हैं !

हालांकि यह वेब-आधारित गिटहब संचालन के लिए है: कमिट में अभी भी एक ईमेल पता होता है, जो आपके GitHub खाते के लिए उपयोग किए जाने वाले एक से अधिक नहीं हो सकता है या नहीं हो सकता है।
नीचे "मास्क" देखें कि (git कमिट) ईमेल भी।

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

लेकिन अब आप अपना ईमेल पता निजी रख सकते हैं। ऐसा करने के लिए, अपने ईमेल सेटिंग पृष्ठ पर जाएं:

ईमेल सेटिंग

इस चालू होने के साथ, वेब-आधारित संचालन एक username@users.noreply.github.com ईमेल पते का उपयोग करेगा।


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

यदि आप चाहते हैं कि आपका चित्र वापस आ जाए, तो आपको GitHub में वापस जाने से पहले अपने स्थानीय रेपो में अपने (नकली) ईमेल को कॉन्फ़िगर करना होगा।

git config --global user.email "user@server.fake" # Set email to slightly changed value
git config --global user.email # Verify the setting
# user@server.fake

फिर:

  • ईमेल सेटिंग मेनू पर जाएं
  • "एक और ईमेल पता जोड़ें" पर क्लिक करें
  • नकली ईमेल दर्ज करें (जैसे " user@server.fake") और "जोड़ें" पर क्लिक करें

नया ईमेल पता जोड़ें

ध्यान दें कि:

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

git filter-branchरिपॉजिटरी इतिहास को फिर से लिखने और नए इतिहास को आगे बढ़ाने के लिए उपयोग करें ।


1
यह जानना उपयोगी है, हालांकि मुझे लगता है कि यह बहुत स्पष्ट होना चाहिए कि GitHub समान नहीं है gitgitएक सामान्य उद्देश्य, खुला स्रोत, नियंत्रण नियंत्रण उपकरण है, जबकि GitHub एक वेब साइट है जो आपको एक gitरिपॉजिटरी प्रकाशित करने की अनुमति देती है। GitHub ने नहीं बनाया git, वे सिर्फ एक बहुत अच्छी वेब साइट बनाते हैं जो इसके साथ अच्छी तरह से काम करती है।
ओवेरे

@orev अच्छा बिंदु। मैंने जवाब में उस चेतावनी को शामिल किया है।
वॉनक

10

GitHub के पास अपना ईमेल पता निजी रखने के लिए एक सहायता लेख है , जो शुरू होता है:

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

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

GitHub को स्पैम के कई रिपोर्ट Git प्रतिबद्ध ईमेल पते पर नहीं भेजे जाते हैं, लेकिन अगर आप इसके बारे में चिंतित हैं, तो इस गाइड को आपको उन चिंताओं को दूर करने में मदद करनी चाहिए।

गाइड में ऐसे चरण होते हैं कि एक नकली पते का उपयोग करने के लिए Git और GitHub दोनों को कैसे कॉन्फ़िगर किया जाए।


मुझे अपने GitHub प्रतिबद्ध ई-मेल पते पर बहुत सारे स्पैम मिल रहे हैं। मैं उसके लिए एक समर्पित का उपयोग करता हूं।
मैटर

6

हां, उपरोक्त उत्तर सही हैं ... सिवाय इसके कि आप आमतौर पर अपनी सभी परियोजनाओं के लिए एक ही ईमेल पता चाहते हैं तो आप कमांड का उपयोग करेंगे:

git config --global user.email "me@email.com"

आप अपने होम डायरेक्टरी में .gitconfig फ़ाइल को उपयोगकर्ता अनुभाग में भी संपादित कर सकते हैं।

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

इसके अलावा, मेरा सुझाव है कि यदि आप सबमिट सार्वजनिक क्षेत्र में जा रहे हैं, तो आप अपने ईमेल को बाधित कर सकते हैं:

briancolfer(at)comcast.net

उदहारण के लिए।


5

लाखों GitHub के ईमेल लीक हो गए

https://github.com/cirosantilli/all-github-commit-emails GitHub अभिलेखागार से निकाला गया https://www.githubarchive.org निर्यात प्रतिबद्ध है।

GitHub आर्काइव GitHub की घटनाओं API से डेटा प्राप्त करता है: https://developer.github.com/v3/activity/events/types/#pushevent और Google BigQuery प्रति घंटा इसे निर्यात करता है जिससे इसे क्वेरी करना आसान हो जाता है।

ईमेल प्रकार की घटनाओं पर दिखाए जाते हैं PushEvent

मुझे नहीं लगता कि GitHub के वेब इंटरफेस पर कहीं भी ईमेल शो होता है, इसलिए किसी भी संग्रह को एपीआई दर सीमित करके सीमित किया जाता है। TODO: खरोंच से एपीआई के माध्यम से 1M ईमेल एकत्र करने के लिए कितना समय।

एपीआई के साथ किसी की प्रतिबद्ध ईमेल प्राप्त करने का व्यावहारिक तरीका

ghmail() { curl "https://api.github.com/users/$1/events/public" | grep email; }
ghmail cirosantilli

या यात्रा: https://api.github.com/users/cirosantilli/events/public

वे भी हैं:

Git प्रतिबद्ध डेटा संरचना में एक स्पष्ट लेखक और कमिट ईमेल क्षेत्र है

पर दिखाया गया: एक जीआईटी कमिट ऑब्जेक्ट डेटा संरचना का फ़ाइल प्रारूप क्या है?

इसलिए यह स्पष्ट है कि यह जानकारी डिफ़ॉल्ट रूप से कमिट में जोड़ी जाती है।


4

हां, आपका ईमेल पता (जैसा कि निर्दिष्ट है git config user.email) GitWeb जैसे वेब इंटरफेस में दिखाई देगा। इसके अलावा, हर कोई आपकी रिपॉजिटरी का क्लोन बनाकर आपके ईमेल पते को जान सकता है, हालांकि यह संभवत: अभी भी स्पैमबॉट्स से परे है। हालांकि कोई भी आपको एक वास्तविक ईमेल पते का उपयोग करने के लिए मजबूर नहीं करता है। यदि कोई नहीं दिया गया है तो Git अपने आप एक निर्मित ईमेल पता सेट कर देगा। इसके बिना मेरी मशीन पर user.email"फू <foo @ बेटी। (कोई नहीं)>" द्वारा दिखाया गया है।


4

आप लेखक के नाम, ईमेल इत्यादि को पूर्ववर्ती रूप से बदल सकते हैं। सॉफ़्टवेयर जो निम्नलिखित कार्य आपके इतिहास को दूषित कर सकते हैं।

#!/bin/sh

git filter-branch --env-filter '

an="$GIT_AUTHOR_NAME"
am="$GIT_AUTHOR_EMAIL"
cn="$GIT_COMMITTER_NAME"
cm="$GIT_COMMITTER_EMAIL"

if [ "$GIT_COMMITTER_EMAIL" = "your@email.to.match" ]
then
    cn="Your New Committer Name"
    cm="Your New Committer Email"
fi
if [ "$GIT_AUTHOR_EMAIL" = "your@email.to.match" ]
then
    an="Your New Author Name"
    am="Your New Author Email"
fi

export GIT_AUTHOR_NAME="$an"
export GIT_AUTHOR_EMAIL="$am"
export GIT_COMMITTER_NAME="$cn"
export GIT_COMMITTER_EMAIL="$cm"
'

यहां से ले गए


4

आपके ईमेल पते को सेट करने के बारे में GitHub का एक सहायता अनुभाग है

विशेष रूप से यह कहता है:

यह जानना अच्छा है: आपको एक वैध ईमेल नहीं देना है। यदि आप स्पैम के बारे में चिंतित हैं, तो इसके बजाय एक नकली ईमेल का उपयोग करें। user@example.com एक आम बात है।

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