Erreur "Votre push publierait une adresse e-mail privée"


110

Je suis très nouveau sur GitHub / VCS .

Lorsque j'essaye de partager mon projet sur GitHub, j'obtiens le message d'erreur suivant.

    Can't finish GitHub sharing process
    Successfully created project 'myproject' on GitHub, but initial push failed:
    remote: error: GH007: Your push would publish a private email address.
    failed to push some refs to 'https://github.com/me/myproject.git'

J'ai recherché le message d'erreur sur Google et je n'ai obtenu aucun résultat. J'ai aussi cherché Stack Exchange, mais pas de cigare. Comment puis-je résoudre ce problème?

Réponses:


67

J'ai également rencontré le même error: GH007message et utilisé ce qui suit pour résoudre le problème.

  1. Accédez à Définir votre adresse e-mail de validation .
  2. Suivez la définition de votre adresse e-mail pour chaque référentiel sur votre ordinateur .
  3. Ouvrez votre compte GitHub et accédez à ParamètresE-mails .
  4. Cochez la case Garder mon adresse e-mail privée .
  5. Décochez la case Bloquer les poussées de ligne de commande qui exposent mon courrier électronique .

Cela peut toutefois exposer votre adresse e-mail.


24
Ceci est une solution mais peut en fait exposer votre adresse e-mail. Si vous avez des validations qui n'ont pas encore été poussées, vous devrez décocher Bloquer les poussées de ligne de commande qui exposent mon e-mail. Ensuite, vous pouvez pousser ces validations en attente. Ensuite, mettez à jour votre adresse e-mail avec l'adresse e-mail de non-réponse et cochez Bloquer les poussées de ligne de commande qui exposent à nouveau mon e-mail pour garder votre adresse privée.
SvenAelterman

5
@SvenAelterman update your email address to the no-reply email addressoù? Dans les paramètres de github ou sur votre ordinateur local, quelque part qui envoie / utilise probablement votre adresse e-mail privée? Cela me semble contre-intuitif que je puisse être supposé copier et coller une adresse e-mail générée par github directement dans github plutôt que de cliquer sur une case à cocher, donc je suppose que la lecture est incorrecte. Ou est-ce??
hippietrail

15
Pour changer l'e-mail de votre dernière utilisation de commitgit commit --amend --author="Author Name <email@address.com>"
dspacejs

9
Il vaut mieux utiliser la solution de @Winfried ici . N'exposera pas votre adresse e-mail publiquement
Connor

8
D'accord, la bonne réponse est @ Winfried's stackoverflow.com/a/51097104/7872793 .
Shane

230

Lorsque vous activez la fonctionnalité «Bloquer les envois de ligne de commande qui exposent mon courrier électronique», vous souhaiterez également configurer Git pour utiliser votre adresse e-mail de non-réponse. Ne vous inquiétez pas, cela n'affectera pas votre graphique de contribution. Tous les commits seront toujours associés à votre compte.

  1. Ouvrez le terminal.

  2. Remplacez le répertoire de travail actuel par le référentiel local dans lequel vous souhaitez configurer l'adresse e-mail que vous associez à vos commits Git.

  3. Trouvez votre adresse de réponse GitHub dans les paramètres personnels de votre GitHub → E-mails . Il est mentionné dans la description de la case à cocher Garder mon adresse e-mail privée . Habituellement, cela commence par un identifiant unique, plus votre nom d'utilisateur.

  4. Définissez une adresse e-mail dans Git. Utilisez votre adresse e-mail de non-réponse fournie par GitHub.

    • Définition de votre adresse e-mail pour chaque référentiel sur votre ordinateur

      git config --global user.email "{ID}+{username}@users.noreply.github.com"
      
    • Définition de votre adresse e-mail pour un référentiel unique

      git config user.email "{ID}+{username}@users.noreply.github.com"
      
  5. Réinitialisez les informations de l'auteur sur votre dernier commit:

    git commit --amend --reset-author
    

    Si vous avez plusieurs validations avec votre adresse e-mail privée, consultez cette réponse .

  6. Vous pouvez maintenant pousser le commit avec l'adresse e-mail noreply, et les futurs commits auront également l'adresse e-mail noreply.

    git push
    

Une fois que vous avez configuré Git, les validations utiliseront votre adresse e-mail alternative "non-réponse", et toutes les poussées qui ne le seront pas seront rejetées.


28
Cela devrait être la réponse acceptée. @ sofia-fernandez answer peut exposer des adresses e-mail. Existe-t-il un moyen de le rendre un peu plus court et plus lisible? Vous avez deux sections principales où la seule différence est le --globaldrapeau
Connor

J'ai eu quelques problèmes avec l'interface Linux (utilisé le terminal SourceTree et cela fait un certain temps que j'ai utilisé VI), vous pouvez ajouter -m <comment>si vous voulez éviter cela.
MikeL

2

Vous avez probablement activé (ou il est maintenant activé par défaut) la fonctionnalité de confidentialité des e-mails de GitHub.

Il est détaillé sur cette page à l'aide de GitHub .

En bref, il existe une bascule que vous pouvez activer (qui est activée sur votre compte) qui empêche tout push où l'utilisateur est votre adresse e-mail réelle. Vous pouvez utiliser une adresse anonyme à la place (ou choisir de désactiver la fonctionnalité).

Les détails des deux options sont disponibles sur la même page .


Merci! J'ai anonymisé mes adresses e-mail et cela a résolu le problème!
user156060

L'utilisation de l'adresse e-mail anonyme est une bonne solution. Si vous l'avez créé avant le 18 juillet 2017, vous souhaiterez peut-être le refaire pour y ajouter 7 chiffres aléatoires.
SvenAelterman

La réponse de Winfried est la réponse autonome.
Peter Mortensen le

0
  1. Aller à Settings
  2. Cliquez sur Emails. Faites défiler vers le bas. Keep my email addresses privatesection sera là.
  3. Notez l'identifiant de messagerie public mentionné là-bas.
  4. Réinitialisez votre identifiant de messagerie global local avec l'identifiant de messagerie public mentionné à l'étape précédente à l'aide de la commande suivante.
$ git config — global user.email "<user_email_id>"
  1. Rétablissez votre dernier commit local qui était bloqué.
$ git reset --soft HEAD~1 
  1. Faites un nouveau commit et poussez-le. Ça va marcher.

-2

J'ai eu le même problème. Ma solution est dans l'image ci-dessous:

Paramètres GitHub


7
Vous avez décidé de publier votre e-mail, ouvert à tous les grattoirs et autres, mais ensuite vous le brouillez
Lesto

En quoi est-ce différent de la réponse acceptée (publiée près d'un an auparavant)?
Peter Mortensen le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.