2009-05-22 9 views
63

Le guide che ho letto finora su Git dicono che dovrei entrare nella configurazione e specificare il mio nome e il mio indirizzo e-mail. Non elaborano; dicono solo di farlo.Git espone pubblicamente il mio indirizzo e-mail?

Perché Git ha bisogno del mio indirizzo e-mail? E, cosa più importante, se pubblico il mio repository pubblicamente disponibile, tramite GitHub, ad esempio, il mio indirizzo e-mail sarà visibile a tutti (compresi gli spambots)?

+13

Penso che questa sia una domanda valida (anche se non tecnica) su uno strumento di programmazione - come molte altre domande su SO - e non merita di essere downvoted come "non correlato alla programmazione". – Jonik

+2

GitHub ora (agosto 2013) ti consente di mantenere privato il tuo indirizzo email! Vedi [la mia risposta sotto] (http://stackoverflow.com/a/18186072/6309). Puoi anche registrare un indirizzo email falso, per non usarlo nei commit che stai spingendo a GitHub. – VonC

risposta

29

Git utilizza il tuo indirizzo email per identificarti, così come altre attività (come firmare un tag con una chiave GPG). Il tuo indirizzo email viene incorporato come parte della tua identità nei registri di commit, ecc., Insieme al nome specificato. Ad esempio, il campo "autore" in un registro di commettere rivelerebbe come:

Author: Joe White <[email protected]> 

Così le informazioni sono a disposizione di chiunque abbia una copia del pronti contro termine, in quanto agisce come un identificatore.

Il tuo indirizzo email probabilmente non sarà visibile a spam bot, però, a meno di utilizzare gitweb, o di un servizio come GitHub, per rendere il vostro repo a disposizione attraverso un'interfaccia web (solo metterlo su internet non fa Questo).

Suppongo che potresti inserire un indirizzo email falso o utilizzare una stringa o uno spazio vuoto o qualcosa del genere (non credo che Git controlli il formato o la validità dell'email), ma l'email è utile se qualcuno che clona il repo deve inviarti una patch o contattarti in qualche modo.

+1

Probabilmente github, gitweb et al dovrebbe avere un'opzione per oscurare gli indirizzi di posta elettronica proprio come fanno i visualizzatori di archivi di mailing list. Sebbene sia un indirizzo email valido è solo una convenzione, strumenti come "git send-email" sono scritti supponendo che sia vero (ad esempio autori di patch automaticamente, ad esempio) – araqnid

+2

Puoi configurare git per usare altra identità che quella data da user.name e user.email per la chiave GPG per la firma dei tag –

+0

I sistemi di controllo delle versioni centralizzati meno recenti utilizzano "username" per identificare l'autore di un commit (di una modifica). Il nome + email è una buona identità; non ha bisogno di essere vera e-mail però. –

4

Sì, il tuo indirizzo di posta elettronica (come specificato in git config user.email) sarà visibile nelle interfacce Web come GitWeb. Inoltre chiunque può imparare il tuo indirizzo e-mail clonando il tuo repository anche se questo è probabilmente ancora molto al di là degli spambots. Nessuno ti obbliga a usare un vero indirizzo email, comunque. Git imposterà automaticamente un indirizzo email costruito se non ne viene dato nessuno. Sulla mia macchina senza user.email viene visualizzato commit da "Foo < foo @ figlia. (Nessuno)>".

6

Sì, le risposte di cui sopra sono corrette ... tranne che si desidera avere in genere lo stesso indirizzo di posta elettronica per tutti i progetti allora si dovrebbe utilizzare il comando:

git config --global user.email "[email protected]" 

È inoltre possibile modificare il file .gitconfig nella tua home directory, nella sezione utente.

È possibile specificare un'e-mail diversa per un particolare progetto eseguendo lo stesso comando senza l'opzione globale.

Inoltre, suggerisco che si può offuscare la tua email se i sottomette sta andando in una zona pubblica:

briancolfer(at)comcast.net 

A titolo di esempio.

4

È possibile modificare in modo retroattivo il nome dell'autore, l'e-mail, ecc. ATTENTI che quanto segue può danneggiare la cronologia.

#!/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" = "[email protected]" ] 
then 
    cn="Your New Committer Name" 
    cm="Your New Committer Email" 
fi 
if [ "$GIT_AUTHOR_EMAIL" = "[email protected]" ] 
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" 
' 

Tratto da here

9

GitHub ha un articolo di aiuto chiamato Keeping your email address private, che inizia:

Git richiede di identificare se stessi in modo da rendere commit, ma è possibile nascondere le informazioni di contatto utilizzando un indirizzo falso.Git non si preoccupa se l'e-mail è valida.

Buono a sapersi: Sebbene Git non si cura, alcuni progetti non potrebbero accettare contributi da voi se i vostri commit non hanno un indirizzo email valido, quindi si consiglia di ricerca le politiche contributo del vostro progetto prima di seguire queste istruzioni.

GitHub non riceve molte segnalazioni di spam che vengono inviate agli indirizzi di posta elettronica di Git, ma se sei preoccupato, questa guida dovrebbe aiutarti a risolvere questi problemi.

La guida contiene i passaggi su come configurare sia Git che GitHub per utilizzare un indirizzo falso.

+0

Sto ricevendo un sacco di spam nel mio indirizzo e-mail di commit GitHub. Ne uso uno dedicato per quello. – Mitar

4

GitHub ha una sezione di aiuto su setting your email address.

In particolare si dice:

Buono a sapersi: Non è necessario dare un'email valida. Se sei preoccupato per lo spam, usa invece un'e-mail falsa. [email protected] è una pratica comune.

28

Aggiornamento aprile 2017

Vedere "Private emails, now more private"

GitHub ha sostenuto con un supplente "noreply" indirizzo e-mail all'autore commit web-based per un po '. A partire da oggi, c'è un altro modo per assicurarti di non pubblicare inavvertitamente il tuo indirizzo email quando esegui commit su GitHub tramite la riga di comando.

Git utilizza il tuo indirizzo email per associare il tuo nome a qualsiasi commit che tu stesso autore. Una volta trasferiti i commit su un repository pubblico su GitHub, vengono pubblicati anche i metadati dell'autore.

Se desideri assicurarti di non pubblicare accidentalmente il tuo indirizzo email, seleziona le opzioni "Mantieni il mio indirizzo email privato" e "Blocca riga di comando che espongono le mie email" nel tuo email settings.

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


Nota: A partire August, 9th 2013, you now can keep your email address private!

Ciò vale però per le operazioni GitHub basate sul Web: i commit contengono ancora un indirizzo email, che potrebbe o non potrebbe essere lo stesso di quello utilizzato per l'account GitHub.
Vedere di seguito per "mascherare" l'email (Git commit).

Fino ad oggi, tutto il GitHub Flow basato su Web ha utilizzato il tuo indirizzo email principale. Ciò include la creazione, la modifica e l'eliminazione di file, nonché l'unione di richieste di pull.

Ma ora puoi mantenere privato il tuo indirizzo email. Per fare ciò, visitare la pagina impostazioni e-mail:

email settings

Con questo acceso, le operazioni basate sul web utilizzeranno un indirizzo e-mail [email protected]


Se si desidera nascondere la tua email fatta dal computer, GitHub ora si permette di registrare gli indirizzi di posta elettronica diverso: vedi this guide.

Hai ancora bisogno di configurare il (finto) e-mail nel repo locale prima di spingere di nuovo a GitHub, se si desidera che le impegna a riflettere

git config --global user.email "[email protected]" # Set email to slightly changed value 
git config --global user.email # Verify the setting 
# [email protected] 

Poi:

  • Vai alle e-mail menu di impostazione
  • Fare clic su "Aggiungi un altro indirizzo email"
  • Inserire l'e-mail falso (ad esempio "[email protected]") e fare clic su "Aggiungi"

add new email address

Nota che:

Questa impostazione ha effetto solo futuro impegna.
Se si desidera cancellare il proprio indirizzo e-mail dalla cronologia dei commit del repository, sarà necessario riscrivere i vecchi commit. Il modo più semplice per farlo è:

Utilizzare git filter-branch to rewrite the repository history e Forza-spingere la nuova cronologia verso l'alto.

4

Milioni di GitHub impegnano email: https://github.com/cirosantilli/all-github-commit-emails estratti dagli archivi GitHub https://www.githubarchive.org esportazioni commettono.

GitHub Archive riceve i dati dall'API degli eventi di GitHub: https://developer.github.com/v3/activity/events/types/#pushevent ed esporta ogni ora su Google BigQuery, il che rende più facile la ricerca.

Le email vengono visualizzate su eventi di tipo PushEvent.

Non credo che le email di commit vengano mostrate in qualsiasi punto dell'interfaccia web di GitHub, quindi qualsiasi raccolta è limitata dalla limitazione della velocità dell'API. TODO: quanto tempo per raccogliere e-mail 1M tramite API da zero.

modo pratico per ottenere qualcuno è impegnarsi e-mail con l'API

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

o visitare il sito: https://api.github.com/users/cirosantilli/events/public

Ci sono anche:

Problemi correlati