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?

utilisateur156060
la source

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.

sofia-fernandez
la source
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 protected]>"
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.

Winfried
la source
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 .

Burhan Khalid
la source
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.
Yuvraj Patil
la source
-2

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

Paramètres GitHub

Peter Doherty
la source
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