277 votes

Signification du message GitHub : push refusé en raison de restrictions sur la confidentialité des courriels

J'ai accepté et fusionné une demande de pull sur GitHub, et maintenant je ne peux plus tirer mes commits.

Le message est le suivant :

! [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)

Que dois-je faire maintenant ?

1 votes

J'ai trouvé la page de documentation : aide.github.com/en/github/

0 votes

0 votes

Je me demande si quelqu'un pourrait montrer comment localiser l'exposition de l'email dans le commit.

583voto

Virtlink Points 12475

Le référentiel distant a été configuré pour vous empêcher de pousser un commit qui révélerait votre adresse e-mail personnelle. Par exemple, dans GitHub, vous avez coché l'option Bloquer les poussées de lignes de commande qui exposent mon email la case à cocher pour permettre cela .

Block command line pushes that expose my email

Vous pouvez bien sûr décocher ce paramètre, mais cela exposera votre adresse électronique privée à tout le monde, car les informations relatives aux auteurs sont lisibles par toute personne ayant accès à votre référentiel.

Au lieu de cela, faites ceci :

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

    git config --global user.email
  2. Trouvez votre Adresse de réponse négative de GitHub dans le dossier de votre GitHub Emails de paramètres personnels . Il est mentionné dans la description du Garder mon adresse électronique privée case à cocher. En général, il commence par un identifiant unique, plus votre nom d'utilisateur :

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

    Keep my email address private

  3. Modifiez le paramètre de l'adresse électronique globale de l'utilisateur pour qu'elle soit votre adresse de non-réponse GitHub :

    git config --global user.email {ID}+{username}@users.noreply.github.com
  4. Réinitialiser les informations sur l'auteur de votre dernière livraison :

    git commit --amend --reset-author

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

  5. Maintenant vous pouvez pousser le commit avec l'adresse e-mail noreply, et les futurs commits auront aussi l'adresse e-mail noreply.

    git push

1 votes

Cela m'informerait quand même que mon e-mail a été exposé. Ce que j'ai aussi dû faire, c'est de mettre votre e-mail à none en utilisant git config --global user.email none .

7 votes

Non, ça a marché comme sur des roulettes de mon côté, peut-être avez-vous oublié une étape, @adamczi. Ceci devrait être la réponse acceptée, car elle indique les deux solutions possibles.

5 votes

Merci, je suppose que j'ai fait une erreur dans l'étape 2. Il est important de noter que vous devez suivre explicitement les instructions de @Virtlink, car si vous définissez une adresse électronique autre que <your_uname>@users.noreply.github.com (comme moi, en train de régler à None ) aura pour conséquence de ne pas montrer vos commits dans le graphique sur votre page de profil.

150voto

Jordan Lewis Points 3456

Cela est probablement dû à une 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 poussées de la ligne de commande qui exposent mon courriel" dans votre paramètres de messagerie puis en poussant à nouveau.

22 votes

Est-ce que le fait de décocher cette option va exposer mon adresse e-mail privée ?

16 votes

Oui, c'est ce qu'il fera mais vous avez déjà exposé votre adresse e-mail si vous avez poussé des commits à votre dépôt. Même si Github n'affiche pas votre adresse électronique, si je clone votre dépôt, je peux les voir tout de même, et c'est ce que ce nouveau truc "prevent-push" empêchera.

13 votes

Cette solution est discutable. Mentionnez au moins que cela exposera votre adresse électronique au monde entier.

6voto

Yuvraj Patil Points 887
  1. Ouvrir Emails de github.com. Visitez https://github.com/settings/emails .

  2. Aller à Keep my email addresses private et notez votre donotreply e-mail id.

  3. Ouvrir git terminal et définissez votre donotreply email id comme votre email id en utilisant la commande suivante :

    git config --global user.email "<your_donotreply_email_id"

  4. Revenir sur vos récentes modifications locales (avec votre adresse électronique privée) qui ne sont pas poussées dans le dépôt.

    git reset --soft HEAD~1

  5. Mettre en scène et pousser ces commits

    git add . git commit –m "<commit_message>" git push

0 votes

Merci, cela fonctionne pour moi, après avoir fait l'étape 4.

2voto

Ndirangu Waweru Points 21

J'ai résolu les erreurs en :

git config --global user.email ""

Cela ne fait que mettre mon courriel à blanc (une chaîne vide). Je définis maintenant mon adresse électronique dans les projets individuels avec :

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

1voto

Anjani Barnwal Points 146
  1. Il suffit d'aller sur github.com et de cliquer sur votre profil.
  2. Aller aux paramètres
  3. Cliquez maintenant sur "Email" dans 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, vérifiez à nouveau et je pense que votre problème est résolu maintenant.

4 votes

Cette solution fonctionnera mais elle exposera votre adresse électronique privée. si vous êtes préoccupé par la confidentialité, voyez d'autres solutions.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X