Git e-posta adresimi herkese açık bir şekilde ifşa ediyor mu?


99

Git'te şimdiye kadar okuduğum kılavuzlar, yapılandırmaya girip adımı ve e-posta adresimi belirtmem gerektiğini söylüyor. Ayrıntılandırmıyorlar; sadece yap diyorlar.

Git neden e-posta adresime ihtiyaç duyuyor? Ve daha da önemlisi, depomu örneğin GitHub aracılığıyla herkese açık hale getirirsem, e-posta adresim herkes tarafından görülebilir mi (spambotlar dahil)?


20
Sanırım bu, programlama ile ilgili bir araç hakkında geçerli (teknik olmasa da) bir soru - SO'daki diğer birçok soru gibi - ve "programlamayla ilgili değil" olarak düşürülmeyi hak etmiyor.
Jonik

3
GitHub şimdi (Ağustos 2013) e-posta adresinizi gizli tutmanıza izin veriyor! Bkz aşağıda Cevabımı . GitHub'a gönderdiğiniz işlemlerde kullanmamak için sahte bir e-posta adresi de kaydedebilirsiniz.
VonC

Yanıtlar:


39

Git, sizi tanımlamak ve diğer görevleri (bir GPG anahtarıyla bir etiket imzalamak gibi) yapmak için e-posta adresinizi kullanır. E-posta adresiniz, belirttiğiniz adla birlikte kaydetme günlüklerinde vb. Kimliğinizin bir parçası olarak gömülür. Örneğin, kaydetme günlüğündeki "yazar" alanı şu şekilde görünür:

Author: Joe White <joewhite@mysite.com>

Bu nedenle, bilgi, bir tanımlayıcı görevi gördüğü için deponun bir kopyasına sahip olan herkes tarafından kullanılabilir.

Deponuzu bir web arayüzü aracılığıyla kullanılabilir hale getirmek için Gitweb'i veya GitHub gibi bir hizmeti kullanmadığınız sürece e-postanız muhtemelen spambotlar tarafından görünmeyecektir (yalnızca internete koymak bunu yapmaz).

Sanırım sahte bir e-posta adresi doldurabilir veya boş bir dize veya boşluk veya başka bir şey kullanabilirsiniz (Git'in e-postanın biçimini veya geçerliliğini kontrol ettiğini sanmıyorum), ancak depoyu klonlayan birinin göndermesi gerekiyorsa e-posta yararlıdır. bir yama yaparsınız veya bir şekilde sizinle iletişime geçersiniz.


3
Muhtemelen github, gitweb ve diğerleri, tıpkı posta listesi arşiv görüntüleyenlerin yaptığı gibi e-posta adreslerini gizlemek için bir seçeneğe sahip olmalıdır. Geçerli bir e-posta adresi olmasına rağmen, 'git e-posta gönder' gibi araçlar doğru olduğu varsayılarak yazılır (örneğin, yama yazarlarını otomatik olarak cc'leme)
araqnid

2
Git'i, user.name ve user.email tarafından etiketleri imzalamak için GPG anahtarı için verilen diğer kimliği kullanacak şekilde yapılandırabilirsiniz
Jakub Narębski

Daha eski merkezi sürüm kontrol sistemleri, bir işlemin (bir değişikliğin) yazarını tanımlamak için "kullanıcı adı" kullanır. İsim + e-posta iyi kimliktir; yine de gerçek bir e-posta olması gerekmez.
Jakub Narębski

3
GitHub, profilinize bağlı sahte bir e-posta adresi kullanabileceğiniz bir güncellemeye sahip - stackoverflow.com/a/20533922/2158473
RyPeck

GitHub, silinmiş bir şubede yeniden tabanla birleştirilen PR taahhütlerini bile hatırlayabilir (ve bu nedenle, e-postayı / adı PR web sayfası dışında repo içinde herhangi bir yerde göstermeyin). Eğer PR birleştirildiyse, taahhütleri tersine çevirmenin bir yolunu bilmiyorum (eğer hala açıksa, yeniden baz alabilir ve zorlayabilirsiniz).
DA

46

Nisan 2017 güncellemesi

" Özel e-postalar artık daha gizli " konusuna bakın

GitHub, bir süredir web tabanlı kayıtlar yazmak için alternatif bir "noreply" e-posta adresi kullanmayı destekliyor. Bugünden itibaren, komut satırı üzerinden GitHub'a taahhütleri gönderirken yanlışlıkla e-posta adresinizi yayınlamamanızı sağlamanın başka bir yolu var.

Git, e-posta adresinizi, adınızı yazdığınız herhangi bir işlemle ilişkilendirmek için kullanır. Kaydetmelerinizi GitHub'daki herkese açık bir depoya aktardığınızda, yazarlık meta verileri de yayınlanır.

E-posta adresinizi yanlışlıkla yayınlamadığınızdan emin olmak istiyorsanız, e-posta ayarlarınızdaki "E-posta adresimi gizli tut" ve "E-postamı açığa çıkaran komut satırı göndermelerini engelle" seçeneklerini işaretlemeniz yeterlidir .

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

Not: Aşağıda orev tarafından yorumlandığı gibi , Git hiçbir şeyi açığa çıkarmaz. Git depoları barındırma hizmeti olan GitHub olabilir. Yerel Git deponuzu ittiğiniz yer meta verileri açığa çıkarabilir.


Not: 9 Ağustos 2013 tarihinden itibaren e-posta adresinizi artık gizli tutabilirsiniz !

Bu, web tabanlı GitHub işlemleri içindir: taahhütler, GitHub hesabınız için kullanılanla aynı olabilen veya olamayan bir e-posta adresi içerir.
Bu (git commit) e-postasını da "maskelemek" için aşağıya bakın.

Bugüne kadar, tüm web tabanlı GitHub Flow birincil e-posta adresinizi kullanıyordu. Bu, dosya oluşturma, düzenleme ve silmenin yanı sıra çekme isteklerini birleştirmeyi içerir.

Ancak artık e-posta adresinizi gizli tutabilirsiniz. Bunu yapmak için e-posta ayarları sayfanızı ziyaret edin:

e mail ayarları

Bu açıkken, web tabanlı işlemler bir username@users.noreply.github.com e-posta adresi kullanır.


Bilgisayarınızdan yapılan e-postanızı gizlemek istiyorsanız GitHub artık farklı e-posta adreslerini kaydetmenize izin veriyor : bu kılavuza bakın .

Taahhütlerinizin yansıtılmasını istiyorsanız, GitHub'a geri göndermeden önce (sahte) e-postanızı yerel deponuzda yapılandırmanız gerekir.

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

Sonra:

  • E-posta ayarı menüsüne gidin
  • "Başka bir e-posta adresi ekle" yi tıklayın
  • Sahte e-postayı (ör. " user@server.fake") Girin ve "Ekle" yi tıklayın

yeni e-posta adresi ekle

Bunu not et:

Bu ayar yalnızca gelecekteki taahhütleri etkiler .
Deponuzun taahhüt geçmişinden gerçek e-posta adresinizi silmek istiyorsanız, eski kayıtlarınızı yeniden yazmanız gerekecektir. Bunu yapmanın en kolay yolu şudur:

git filter-branchDepo geçmişini yeniden yazmak ve yeni geçmişi zorla yukarı itmek için kullanın .


1
Bunu bilmek yararlıdır, ancak bence GitHub'ın aynı olmadığı çok açık olmalıdır a git. gitGenel amaçlı, açık kaynak kodlu bir revizyon kontrol aracıdır, GitHub ise bir gitdepo yayınlamanıza izin veren bir web sitesidir . GitHub yaratmadı git, sadece onunla iyi çalışan çok güzel bir web sitesi oluşturdular.
2018

@orev İyi nokta. Cevaba bu uyarıyı ekledim.
VonC

10

GitHub'ın e-posta adresinizi gizli tutma adlı bir yardım makalesi vardır, bu makale başlar:

Git, işlem yapabilmeniz için kimliğinizi belirtmenizi ister, ancak sahte bir adres kullanarak iletişim bilgilerinizi gizleyebilirsiniz. Git, e-postanın geçerli olup olmadığını umursamıyor.

Bilmekte fayda var: Git umursamasa da, taahhütlerinizin geçerli bir e-posta adresi yoksa bazı projeler sizden katkı kabul etmeyebilir, bu nedenle bu talimatları uygulamadan önce projenizin katkı politikalarını araştırmak isteyeceksiniz.

GitHub, Git'e gönderilen e-posta adreslerine gönderilen çok sayıda spam raporu almaz, ancak bunun için endişeleniyorsanız, bu kılavuz bu endişeleri gidermenize yardımcı olacaktır.

Kılavuz, hem Git hem de GitHub'ı sahte bir adres kullanacak şekilde yapılandırma adımlarını içerir.


GitHub kayıt e-posta adresime çok fazla spam alıyorum. Bunun için özel bir tane kullanıyorum.
Mitar

6

Evet, yukarıdaki cevaplar doğrudur ... Tek fark tüm projeleriniz için aynı e-posta adresine sahip olmak istemeniz dışında şu komutu kullanırsınız:

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

Ayrıca, kullanıcı bölümünde ana dizininizdeki .gitconfig dosyasını düzenleyebilirsiniz.

Global seçeneği olmadan aynı komutu uygulayarak belirli bir proje için farklı bir e-posta belirtebilirsiniz.

Ayrıca, gönderimler herkese açık bir alana gidiyorsa, e-postanızı gizlemenizi öneririm:

briancolfer(at)comcast.net

Örnek olarak.


6

Milyonlarca GitHub kayıt e-postası sızdırıldı

https://github.com/cirosantilli/all-github-commit-emails ekstre GitHub Arşivleri https://www.githubarchive.org ihracat işlemek.

GitHub Arşivi, GitHub'ın etkinlikler API'sinden veri alır: https://developer.github.com/v3/activity/events/types/#pushevent ve bunları saatlik olarak Google BigQuery'ye aktararak sorgulamayı kolaylaştırır.

E-postalar türdeki olaylarda gösterilir PushEvent.

Taahhüt e-postalarının GitHub'ın web arayüzünde herhangi bir yerde gösterildiğini sanmıyorum, bu nedenle herhangi bir koleksiyon API oranı sınırlamasıyla sınırlıdır. TODO: API aracılığıyla sıfırdan 1 milyon e-posta toplamak için ne kadar zamanınız var.

API ile birinin taahhüt e-postasını almanın pratik yolu

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

veya şu adresi ziyaret edin: https://api.github.com/users/cirosantilli/events/public

Ayrıca orada:

Git kaydetme veri yapısının açık bir yazar ve kaydedici e-posta alanı vardır

Şurada gösterilir: Git commit nesnesi veri yapısının dosya formatı nedir?

Bu nedenle, bu bilginin taahhütlere varsayılan olarak eklendiği açıktır.


4

Evet, e-posta adresiniz (belirtildiği git config user.emailgibi) GitWeb gibi web arayüzlerinde görünecektir. Ayrıca, deponuzu klonlayarak e-posta adresinizi herkes öğrenebilir, ancak bu muhtemelen istenmeyen postaların çok ötesinde. Yine de kimse sizi gerçek bir e-posta adresi kullanmaya zorlamaz. Hiçbiri verilmemişse Git otomatik olarak yapılandırılmış bir e-posta adresi ayarlayacaktır. user.emailO olmadan makinemde "Foo <foo @ daughter. (None)>" tarafından yapılan işlemleri gösteriyor.


4

Yazar adını, e-postayı vb. Geriye dönük olarak değiştirebilirsiniz. Aşağıdakileri yapmanın geçmişinizi bozabileceğine DİKKAT EDİN.

#!/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"
'

Buradan alındı


4

GitHub, e-posta adresinizi ayarlamakla ilgili bir yardım bölümüne sahiptir .

Özellikle şöyle diyor:

Bilmekte fayda var: Geçerli bir e-posta vermek zorunda değilsiniz. Spam konusunda endişeleriniz varsa bunun yerine sahte bir e-posta kullanın. user@example.com yaygın bir uygulamadır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.