Signification du message GitHub: push refusé en raison des restrictions de confidentialité des e-mails


204

J'ai accepté et fusionné une demande de tirage sur github, et maintenant je ne peux plus retirer mes commits.

Le message est:

! [remote rejected] master -> master (push declined due to email privacy restrictions)
error: failed to push some refs to 'git@github.com:FranckFreiburger/vue-resize-sensor.git'


git did not exit cleanly (exit code 1) (3838 ms @ 12/04/2017 21:23:11)

Qu'est-ce que je devrais faire maintenant ?


1
J'ai trouvé la page de documentation: help.github.com/en/github/…
Sebastian Norr

Réponses:


402

Le référentiel distant a été configuré pour vous interdire de pousser un commit qui révélerait votre adresse e-mail personnelle. Par exemple, dans GitHub, vous avez coché la case Bloquer la ligne de commande qui expose ma case à cocher e-mail pour l' activer .

Bloquer les push de ligne de commande qui exposent mes e-mails

Bien que vous puissiez bien sûr décocher ce paramètre, cela exposera votre adresse e-mail privée à tout le monde, car les informations sur l'auteur sont lisibles par toute personne ayant accès à votre référentiel.

Au lieu de cela, procédez comme suit:

  1. Vous pouvez voir votre adresse e-mail personnelle, qui est utilisée par défaut pour vos validations dans Git:

    git config --global user.email
  2. Trouvez votre adresse GitHub dans les paramètres personnels de votre GitHub → Emails . 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:

    {ID}+{username}@users.noreply.github.com

    Garder mon adresse e-mail privée

  3. Modifiez le paramètre de l'adresse e-mail de l'utilisateur global pour qu'il soit votre adresse GitHub noreply:

    git config --global user.email {ID}+{username}@users.noreply.github.com
  4. 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 .

  5. Vous pouvez maintenant pousser le commit avec l'adresse e-mail noreply, et les futures validations auront également l'adresse e-mail noreply.

    git push

4
Non, cela a fonctionné comme un charme de mon côté, vous avez peut-être oublié une étape, @adamczi. Cela devrait être la réponse acceptée, car elle énonce les deux solutions possibles.
Ioanna

4
Merci, je suppose que j'ai peut-être commis une erreur à l'étape 2. Il convient de noter que vous devez explicitement suivre les instructions de @ Virtlink là-bas, car si vous définissez un e-mail sur un autre que <your_uname>@users.noreply.github.com(comme moi-même, sur None), vous n'aurez pas à afficher vos validations dans le graphique sur votre page de profil.
adamczi

3
J'ai eu un problème mystérieux similaire. Mon erreur était de le faire git commit --amend --author "first last me@users.noreply.github.com"et ça ne semblait pas aimer ça. Vous devez vraiment réinitialiser le user.emailparamètre de configuration exactement comme ci-dessus. À votre santé!
msanford

6
L'étape 4 que Virtlink fournit ci-dessus était essentielle pour surmonter cette erreur. J'avais défini le user.email dans la configuration pour utiliser mon adresse e-mail sans réponse, mais la commande Push renvoyait toujours l'erreur frustrante concernant la publication d'un e-mail privé. Une fois que j'ai modifié le commit que j'essayais de pousser, il a ensuite autorisé le push.
teaman

3
Vous ne souhaiterez peut-être modifier l'adresse e-mail que pour un seul référentiel. Cette réponse a été utile, mais j'ai également dû me référer à l'article d'aide de github: Définir votre adresse e-mail pour un référentiel unique
gfullam

146

Cela est probablement dû à un nouveau paramètre GitHub qui bloque les poussées de ligne de commande qui exposent votre adresse e-mail.

Essayez de décocher la case "Bloquer les push de ligne de commande qui exposent mes e-mails" dans vos paramètres de messagerie, puis appuyez à nouveau.


20
est-ce que décocher cette option exposera mon adresse e-mail privée?
Franck Freiburger

14
Oui, c'est ce que cela fera, mais vous avez déjà exposé votre adresse e-mail si vous avez poussé les validations dans votre référentiel. Même si Github n'affichera pas votre adresse e-mail, si je clone votre référentiel, je peux les voir de la même manière, et c'est ce que ce nouveau truc de prévention-push empêchera.
Lasse V. Karlsen

10
C'est une solution discutable. Mentionnez au moins que cela exposera votre adresse e-mail au monde entier.
kovac

Daniel AA Pelsmaeker et Winfried sont les meilleures réponses.
Peter Mortensen

1

J'ai résolu les erreurs en:

git config --global user.email ""

Cela a simplement mis mon e-mail en blanc (une chaîne vide). Je place maintenant mon email dans des projets individuels avec:

git config user.email "myemail@domain.com"


0
  1. allez sur github.com et cliquez sur votre profil
  2. Aller aux paramètres
  3. maintenant cliquez sur le 'Email' sur le panneau de navigation de gauche
  4. et recherchez le champ "Garder mes adresses e-mail privées"
  5. veuillez décocher cette option
  6. maintenant, veuillez vérifier à nouveau et je pense que votre problème est résolu maintenant.

2
cela fonctionnera mais cela exposera votre adresse e-mail privée. si vous êtes préoccupé par la confidentialité, consultez d'autres solutions.
kaznovac

-1

Décochez Bloquer les poussées de ligne de commande qui exposent mes e - mails , puis essayez de pousser le code depuis la ligne de commande.


même chose applicable savoir?
LOG_TAG

cela fonctionnera mais cela exposera votre adresse e-mail privée. si vous êtes préoccupé par la confidentialité, consultez d'autres solutions.
kaznovac

En quoi est-ce différent de la réponse de Jordan Lewis ?
Peter Mortensen
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.