Significado da mensagem do GitHub: envio recusado devido a restrições de privacidade de email

202

Aceitei e mesclei uma solicitação de solicitação no github e agora não posso mais receber minhas confirmações.

A mensagem é:

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

O que eu deveria fazer agora ?

Franck Freiburger
fonte
1
Encontrei a página de documentação: help.github.com/en/github/…
Sebastian Norr 26/11/19
A resposta canônica (independente) é de Winfried. Seu envio publicaria um erro de endereço de email privado
Peter Mortensen

Respostas:

400

O repositório remoto foi configurado para não permitir o envio de uma confirmação que revelaria seu endereço de email pessoal. Por exemplo, no GitHub, você marcou as opções de linha de comando Bloquear que expõem meu email para habilitar isso .

Bloquear pushs de linha de comando que expõem meu email

Embora você possa desmarcar essa configuração, ela exporá seu endereço de email particular a todos no mundo, pois as informações do autor podem ser lidas por qualquer pessoa com acesso ao seu repositório.

Em vez disso, faça o seguinte:

  1. Você pode ver seu endereço de e-mail pessoal, que é usado por padrão para suas confirmações no Git:

    git config --global user.email
  2. Encontre seu endereço no GitHub em Configurações Pessoais do GitHub → E-mails . Ele é mencionado na descrição da caixa de seleção Manter meu endereço de email privado . Geralmente, ele começa com um identificador exclusivo, além do seu nome de usuário:

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

    Mantenha o meu endereço de email privado

  3. Altere a configuração do endereço de e-mail do usuário global para ser seu endereço no GitHub:

    git config --global user.email {ID}+{username}@users.noreply.github.com
  4. Redefina as informações do autor em seu último commit:

    git commit --amend --reset-author

    Se você tiver várias confirmações com seu endereço de email privado, consulte esta resposta .

  5. Agora você pode enviar por push o commit com o endereço de email inválido, e as confirmações futuras também terão o endereço de email inválido.

    git push
Daniel AA Pelsmaeker
fonte
4
Não, funcionou como um encanto do meu lado, talvez você tenha esquecido um passo, @adamczi. Essa deve ser a resposta aceita, pois indica as duas soluções possíveis.
Ioanna
4
Obrigado, acho que posso ter cometido um erro na etapa 2. Vale a pena notar que você deve seguir explicitamente as instruções do @ Virtlink lá, pois definir um email para outro que não seja <your_uname>@users.noreply.github.com(como eu defini como None) resultará em não mostrar seus commits em o gráfico na sua página de perfil.
adamczi
3
Eu tive um problema misterioso semelhante. Meu erro foi git commit --amend --author "first last [email protected]"e não parecia gostar disso. Você realmente precisa redefinir o user.emailparâmetro de configuração exatamente como acima. Felicidades!
msanford
6
A etapa 4 que a Virtlink fornece acima foi fundamental para que eu conseguisse superar esse erro. Eu havia definido o user.email na configuração para usar meu endereço de email sem resposta, mas o comando Push ainda retornava o erro frustrante sobre a publicação de um email privado. Depois de alterar o commit que estava tentando enviar, ele permitiu o envio.
teaman
3
Você pode alterar apenas o endereço de email de um único repositório. Esta resposta foi útil, mas eu também tinha que consulte o artigo da ajuda de github: Definir o seu endereço de e-mail para um repositório único
gfullam
146

Provavelmente, isso é causado por uma nova configuração do GitHub que bloqueia os impulsos da linha de comando que expõem seu endereço de email.

Tente desmarcar a caixa "Bloquear push de linha de comando que expõem meu email" nas configurações de email e pressionar novamente.

Jordan Lewis
fonte
20
desmarcar esta opção exporá meu endereço de e-mail particular?
Franck Freiburger
14
Sim, é isso que ele fará, mas você já expôs seu endereço de e-mail se tiver enviado confirmações para o seu repositório. Mesmo que o Github não mostre seu endereço de e-mail, se eu clonar seu repositório, posso vê-los da mesma forma, e é isso que essa nova coisa de prevenção e envio impedirá.
Lasse V. Karlsen
10
Esta é uma solução questionável. Pelo menos mencione que isso exporá seu endereço de e-mail a todo o mundo.
kovac 12/01
Daniel AA Pelsmaeker e Winfried são as melhores respostas.
Peter Mortensen
1

Resolvi os erros:

git config --global user.email ""

Isso acabou de definir meu e-mail em branco (uma sequência vazia). Agora, defino meu email em projetos individuais com:

git config user.email "[email protected]"

Ndirangu Waweru
fonte
0
  1. basta ir ao github.com e clicar no seu perfil
  2. vá para as configurações
  3. agora clique no 'E-mail' no painel de navegação esquerdo
  4. e pesquise o campo "Manter meus endereços de email privados"
  5. desmarque esta opção
  6. Agora, verifique novamente e acho que seu problema foi resolvido agora.
Anjani Barnwal
fonte
2
isso funcionará, mas exporá seu endereço de email privado. se você estiver preocupado com a privacidade, consulte outras soluções.
kaznovac 11/04
-1

Desmarque Bloquear push de linha de comando que expõem meu email e tente empurrar o código na linha de comando.

Rajesh Panda
fonte
mesma coisa aplicável sabe?
LOG_TAG
isso funcionará, mas exporá seu endereço de email privado. se você estiver preocupado com a privacidade, consulte outras soluções.
kaznovac 11/04
Como isso é diferente da resposta de Jordan Lewis ?
Peter Mortensen