Git expose-t-il publiquement mon adresse e-mail?

96

Les guides que j'ai lus jusqu'à présent sur Git disent que je devrais entrer dans la configuration et spécifier mon nom et mon adresse e-mail. Ils n'élaborent pas; ils disent juste de le faire.

Pourquoi Git a-t-il besoin de mon adresse e-mail? Et, plus important encore, si je mets mon dépôt à la disposition du public, via GitHub par exemple, mon adresse e-mail sera-t-elle visible par tous (y compris les spambots)?

Joe White
la source
19
Je pense que c'est une question valide (bien que non technique) sur un outil lié à la programmation - comme beaucoup d'autres questions sur le SO - et ne mérite pas d'être critiquée comme "non liée à la programmation".
Jonik
3
GitHub now (août 2013) vous permet de garder votre adresse e-mail privée! Voir ma réponse ci-dessous . Vous pouvez également enregistrer une fausse adresse e-mail, afin de ne pas l'utiliser dans les commits que vous transmettez à GitHub.
VonC

Réponses:

36

Git utilise votre adresse e-mail pour vous identifier, ainsi que pour effectuer d'autres tâches (comme signer une balise avec une clé GPG). Votre adresse e-mail est intégrée dans le cadre de votre identité dans les journaux de validation, etc., avec le nom que vous spécifiez. Par exemple, le champ "auteur" dans un journal de validation apparaîtrait comme:

Author: Joe White <[email protected]>

Ainsi, les informations sont accessibles à toute personne disposant d'une copie du repo, car elles servent d'identifiant.

Votre e-mail ne sera probablement pas visible pour les spambots, cependant, sauf si vous utilisez Gitweb, ou un service comme GitHub, pour rendre votre dépôt disponible via une interface Web (le simple fait de le mettre sur Internet ne le fait pas).

Je suppose que vous pouvez remplir une fausse adresse e-mail ou utiliser une chaîne ou un espace vide ou quelque chose (je ne pense pas que Git vérifie le format ou la validité de l'e-mail), mais l'e-mail est utile si quelqu'un qui clone le dépôt doit envoyer vous un patch ou vous contacter d'une manière ou d'une autre.

mipadi
la source
3
On peut soutenir que github, gitweb et al devraient avoir une option pour masquer les adresses e-mail, tout comme le font les visualiseurs d'archives de listes de diffusion. Bien qu'il s'agisse d'une adresse e-mail valide ne soit qu'une convention, des outils tels que 'git send-email' sont écrits en supposant que c'est vrai (cc'ing automatiquement les auteurs de patchs, par exemple)
araqnid
2
Vous pouvez configurer git pour utiliser une autre identité que celle donnée par user.name et user.email pour la clé GPG pour la signature des tags
Jakub Narębski
Les anciens systèmes de contrôle de version centralisés utilisent "nom d'utilisateur" pour identifier l'auteur d'un commit (d'un changement). Le nom + l'email est une bonne identité; il n'a pas besoin d'être un vrai e-mail.
Jakub Narębski
3
GitHub a une mise à jour où vous pouvez utiliser une fausse adresse e-mail liée à votre profil - stackoverflow.com/a/20533922/2158473
RyPeck
GitHub peut se souvenir même des commits PR sur une branche supprimée qui ont été fusionnés sing rebase (et donc, n'exposez pas l'e-mail / le nom n'importe où dans le dépôt, sauf sur la page Web PR). Si le PR a été fusionné, je ne connais aucun moyen d'annuler les commits (s'il est toujours ouvert, vous pouvez rebaser et forcer le push).
DA
44

Mise à jour avril 2017

Voir " E-mails privés, désormais plus privés "

GitHub prend en charge l'utilisation d'une autre adresse e-mail "noreply" pour créer des commits Web depuis un certain temps. À partir d'aujourd'hui, il existe un autre moyen de vous assurer de ne pas publier votre adresse e-mail par inadvertance lorsque vous envoyez des commits sur GitHub via la ligne de commande.

Git utilise votre adresse e-mail pour associer votre nom à tous les commits que vous créez. Une fois que vous transférez vos commits dans un référentiel public sur GitHub, les métadonnées d'auteur sont également publiées.

Si vous souhaitez vous assurer de ne pas publier accidentellement votre adresse e-mail, cochez simplement les options "Garder mon adresse e-mail privée" et "Bloquer les poussées de ligne de commande qui exposent mes e-mails" dans vos paramètres de messagerie .

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

Remarque: comme commenté ci-dessous par orev , Git n'expose rien. GitHub , un service d' hébergement de référentiels Git , pourrait.
L'endroit où vous poussez votre dépôt Git local peut exposer des métadonnées.


Remarque: à partir du 9 août 2013, vous pouvez désormais garder votre adresse e-mail privée !

C'est pour les opérations GitHub basées sur le Web: les commits contiennent toujours une adresse e-mail, qui pourrait ou non être la même que celle utilisée pour votre compte GitHub.
Voir ci-dessous pour "masquer" cet e-mail (git commit) aussi.

Jusqu'à aujourd'hui, tous les GitHub Flow basés sur le Web utilisaient votre adresse e-mail principale. Cela inclut la création, la modification et la suppression de fichiers, ainsi que la fusion de demandes d'extraction.

Mais maintenant, vous pouvez garder votre adresse e-mail privée. Pour ce faire, visitez la page des paramètres de messagerie:

Paramètres de messagerie

Lorsque cette option est activée, les opérations Web utiliseront une adresse e-mail [email protected].


Si vous souhaitez masquer votre e-mail créé depuis votre ordinateur, GitHub vous permet désormais d' enregistrer différentes adresses e-mail : consultez ce guide .

Vous devez toujours configurer votre (faux) e-mail dans votre dépôt local avant de repousser vers GitHub, si vous souhaitez que vos commits reflètent

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

Ensuite:

  • Accédez au menu de configuration des e-mails
  • Cliquez sur "Ajouter une autre adresse e-mail"
  • Entrez le faux e-mail (par exemple " [email protected]") et cliquez sur "Ajouter"

ajouter une nouvelle adresse e-mail

Notez que:

Ce paramètre affecte uniquement les validations futures .
Si vous souhaitez effacer votre véritable adresse e-mail de l'historique des commit de votre dépôt, vous devrez réécrire vos anciens commits. La façon la plus simple de procéder est de:

Utilisez git filter-branchpour réécrire l'historique du référentiel et forcer le nouvel historique.

VonC
la source
1
C'est utile à savoir, cependant je pense qu'il devrait être très clair que GitHub n'est pas le même a git. gitest un outil de contrôle des révisions open source à usage général, tandis que GitHub est un site Web qui vous permet de publier un gitréférentiel. GitHub n'a pas créé git, ils ont simplement créé un très beau site Web qui fonctionne bien avec lui.
orev
@orev Bon point. J'ai inclus cet avertissement dans la réponse.
VonC
10

GitHub a un article d'aide intitulé Garder votre adresse e-mail privée , qui commence:

Git vous oblige à vous identifier pour effectuer des commits, mais vous pouvez masquer vos informations de contact en utilisant une fausse adresse. Git lui-même ne se soucie pas de savoir si l'e-mail est valide.

Bon à savoir: bien que Git s'en fiche, certains projets peuvent ne pas accepter de contributions de votre part si vos commits n'ont pas d'adresse e-mail valide, vous voudrez donc rechercher les politiques de contribution de votre projet avant de suivre ces instructions.

GitHub ne reçoit pas beaucoup de rapports de spam envoyé aux adresses e-mail de commit Git, mais si cela vous inquiète, ce guide devrait vous aider à résoudre ces problèmes.

Le guide contient les étapes de configuration de Git et GitHub pour utiliser une fausse adresse.

Hugo
la source
Je reçois beaucoup de spam sur mon adresse e-mail de validation GitHub. J'en utilise un dédié pour cela.
Mitar
6

Oui, les réponses ci-dessus sont correctes ... sauf que vous souhaitez généralement avoir la même adresse e-mail pour tous vos projets, vous utiliserez la commande:

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

Vous pouvez également éditer le fichier .gitconfig dans votre répertoire personnel, dans la section utilisateur.

Vous pouvez spécifier un e-mail différent pour un projet particulier en exécutant la même commande sans l'option globale.

De plus, je suggère que vous puissiez masquer votre e-mail si les soumissions vont dans une zone publique:

briancolfer(at)comcast.net

Par exemple.

bcolfer
la source
5

Des millions d'e-mails de validation GitHub ont été divulgués

https://github.com/cirosantilli/all-github-commit-emails extraits des archives GitHub https://www.githubarchive.org exports commit.

L'archive GitHub obtient des données de l'API d'événements de GitHub: https://developer.github.com/v3/activity/events/types/#pushevent et les exporte toutes les heures vers Google BigQuery, ce qui facilite les requêtes.

Les e-mails sont affichés sur les événements de type PushEvent.

Je ne pense pas que les e-mails de validation s'affichent nulle part sur l'interface Web de GitHub, donc toute collection est limitée par la limitation du débit de l'API. TODO: combien de temps pour collecter 1M d'emails via API à partir de zéro.

Moyen pratique d'obtenir l'e-mail de validation de quelqu'un avec l'API

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

ou visitez: https://api.github.com/users/cirosantilli/events/public

Il y a aussi:

La structure de données de commit Git a un champ de courrier électronique explicite pour l'auteur et le validateur

Montré à: Quel est le format de fichier d'une structure de données d'objet git commit?

Par conséquent, il est clair que ces informations sont ajoutées aux commits par défaut.

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
la source
4

Oui, votre adresse e-mail (telle que spécifiée dans git config user.email) sera visible dans les interfaces Web telles que GitWeb. De plus, tout le monde peut apprendre votre adresse e-mail en clonant votre référentiel, bien que cela soit probablement encore bien au-delà des spambots. Personne ne vous oblige à utiliser une véritable adresse e-mail. Git définira automatiquement une adresse e-mail construite si aucune n'est donnée. Sur ma machine sans, user.emailil affiche les commits par "Foo <foo @ daughter. (None)>".

Bombe
la source
4

Vous pouvez modifier rétroactivement le nom de l'auteur, l'adresse e-mail, etc. ATTENTION que faire ce qui suit peut corrompre votre historique.

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

Pris d' ici

oeuf
la source
4

GitHub a une section d'aide sur la configuration de votre adresse e-mail.

Plus précisément, il dit:

Bon à savoir: vous n'êtes pas obligé de fournir un e-mail valide. Si vous êtes préoccupé par le spam, utilisez plutôt un faux e-mail. [email protected] est une pratique courante.

g_fred
la source