web-dev-qa-db-fra.com

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

Les guides que j'ai lus jusqu'à présent sur Git disent que je devrais aller 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 référentiel à la disposition du public, via GitHub par exemple, mon adresse e-mail sera-t-elle visible par tout le monde (y compris les spambots)?

86
Joe White

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

Author: Joe White <[email protected]>

Ainsi, les informations sont accessibles à toute personne possédant une copie du référentiel, car elles servent d'identifiant.

Votre e-mail ne sera probablement pas visible pour les spambots, 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 faire cela).

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.

34
mipadi

Mise à jour avril 2017

Voir " courriels privés, désormais plus privés "

GitHub a pris en charge l'utilisation d'une autre adresse e-mail "sans réponse" pour créer des validations sur le Web depuis un certain temps maintenant. À 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 validations à 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 avez poussé vos validations vers 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 push de ligne de commande qui exposent mon e-mail" dans vos paramètres e-mail .

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 référentiel Git hébergement, pourrait.
L'endroit où vous envoyez votre dépôt Git local peut exposer des métadonnées.


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

C'est cependant pour les opérations GitHub 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 flux GitHub 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 des demandes d'extraction.

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

email settings

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


Si vous souhaitez masquer votre e-mail à partir de votre ordinateur, GitHub vous permet désormais d'enregistrer différentes adresses e-mail : voir ce guide.

Vous devez toujours configurer votre (faux) e-mail dans votre référentiel local avant de repousser vers GitHub, si vous voulez 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"
  • Saisissez le faux e-mail (par exemple, "[email protected] ") et cliquez sur" Ajouter "

add new email address

Notez que:

Ce paramètre n'affecte que les validations futures .
Si vous souhaitez supprimer votre véritable adresse e-mail de l'historique des validations de votre référentiel, vous devrez réécrire vos anciennes validations. La façon la plus simple de procéder consiste à:

Utilisation git filter-branch pour réécrire l'historique du référentiel et Force-Push le nouvel historique vers le haut.

39
VonC

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

Git vous oblige à vous identifier afin de faire des commits, mais vous pouvez masquer vos coordonnées en utilisant une fausse adresse. Git lui-même ne se soucie pas de la validité de l'e-mail.

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

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

Le guide contient des étapes sur la façon de configurer Git et GitHub pour utiliser une fausse adresse.

10
Hugo

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

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

Vous pouvez également modifier 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.

Aussi, je suggère que vous puissiez masquer votre e-mail si les soumissions vont dans un espace public:

briancolfer(at)comcast.net

Par exemple.

6
bcolfer

Des millions d'e-mails de validation GitHub : https://github.com/cirosantilli/all-github-commit-emails extrait de Archives GitHub https://www.githubarchive.org les exportations sont validées.

GitHub Archive obtient des données de l'API des é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 la recherche.

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 e-mails via l'API à partir de zéro.

Moyen pratique pour 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:

Oui, votre adresse e-mail (comme spécifié dans git config user.email) sera visible dans les interfaces Web comme GitWeb. Tout le monde peut également apprendre votre adresse e-mail en clonant votre référentiel, bien que cela soit probablement bien au-delà des spambots. Personne ne vous oblige cependant à utiliser une véritable adresse e-mail. Git définira automatiquement une adresse e-mail construite si aucune n'est fournie. Sur ma machine sans user.email il montre les commits de "Foo <foo @ fille. (aucun)>".

4
Bombe

Vous pouvez modifier rétroactivement le nom de l'auteur, l'adresse e-mail, etc. ATTENTION, 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"
'

Extrait de ici

4
eggonlegs

GitHub a une section d'aide sur définition de votre adresse e-mail.

Plus précisément, il dit:

Bon à savoir: vous n'avez pas besoin de donner 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.

4
g_fred