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 '[email protected]: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 ?

Franck Freiburger
la source
1
J'ai trouvé la page de documentation: help.github.com/en/github/…
Sebastian Norr
La réponse canonique (autonome) est la réponse de Winfried à Votre publication publiera une erreur d'adresse e-mail privée
Peter Mortensen

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
Daniel AA Pelsmaeker
la source
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 [email protected]"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.

Jordan Lewis
la source
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 "[email protected]"

Ndirangu Waweru
la source
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.
Anjani Barnwal
la source
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.

Rajesh Panda
la source
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