Significato del messaggio GitHub: push rifiutato a causa delle restrizioni sulla privacy dell'email


204

Ho accettato e unito una richiesta pull su github e ora non riesco più a eseguire il commit.

Il messaggio è:

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

Cosa dovrei fare ora ?


1
Ho trovato la pagina della documentazione: help.github.com/en/github/…
Sebastian Norr,

Risposte:


401

Il repository remoto è stato configurato per impedirti di inviare un commit che rivelerebbe il tuo indirizzo e-mail personale. Ad esempio in GitHub hai selezionato la casella di comando Blocca push che espone la mia casella di posta elettronica per abilitare questa opzione .

Blocca push della riga di comando che espongono la mia e-mail

Ovviamente puoi deselezionare questa impostazione, ma esporrà il tuo indirizzo e-mail privato a tutti nel mondo, poiché le informazioni sull'autore sono leggibili da chiunque abbia accesso al tuo repository.

Invece, fai questo:

  1. Puoi vedere il tuo indirizzo e-mail personale, che viene utilizzato di default per i tuoi commit in Git:

    git config --global user.email
  2. Trova il tuo indirizzo Noreply GitHub nelle Impostazioni personali → Email di GitHub . È menzionato nella descrizione della casella di controllo Mantieni il mio indirizzo e-mail privato . Di solito, inizia con un identificativo univoco, più il tuo nome utente:

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

    Mantieni il mio indirizzo email privato

  3. Modifica l'impostazione dell'indirizzo e-mail dell'utente globale in modo che diventi il ​​tuo indirizzo principale di GitHub:

    git config --global user.email {ID}+{username}@users.noreply.github.com
  4. Reimposta le informazioni sull'autore sull'ultimo commit:

    git commit --amend --reset-author

    Se hai più commit con il tuo indirizzo e-mail privato, vedi questa risposta .

  5. Ora puoi inviare il commit con l'indirizzo e-mail non ripetibile e anche i commit futuri avranno l'indirizzo e-mail non ripetibile.

    git push

4
No, ha funzionato come un incantesimo dalla mia parte, forse hai dimenticato un passaggio, @adamczi. Questa dovrebbe essere la risposta accettata, in quanto indica entrambe le possibili soluzioni.
Ioanna,

4
Grazie, suppongo che avrei potuto fare un errore nel passaggio 2. Vale la pena notare che dovresti seguire esplicitamente le istruzioni di @ Virtlink lì, perché l'impostazione di un'e-mail diversa da <your_uname>@users.noreply.github.com(come me stesso imposto a None) comporterà il non mostrare i tuoi commit in il grafico nella pagina del tuo profilo.
adamczi,

3
Ho avuto un problema misterioso simile. Il mio errore è stato git commit --amend --author "first last me@users.noreply.github.com"e non mi è piaciuto. Devi davvero ripristinare il user.emailparametro di configurazione esattamente come sopra. Saluti!
msanford,

6
Il passaggio 4 fornito da Virtlink sopra è stato fondamentale per superare questo errore. Avevo impostato user.email nella configurazione per utilizzare il mio indirizzo e-mail senza risposta, ma il comando Push ha comunque restituito l'errore frustrante relativo alla pubblicazione di un'e-mail privata. Una volta che ho modificato il commit che stavo cercando di spingere, ha permesso la spinta.
teaman

3
È possibile che si desideri modificare l'indirizzo e-mail per un singolo repository. Questa risposta è stata utile, ma ho anche dovuto fare riferimento all'articolo della guida di github: Impostazione dell'indirizzo e-mail per un singolo repository
gfullam,

146

Ciò è probabilmente causato da una nuova impostazione di GitHub che blocca i push della riga di comando che espongono il tuo indirizzo email.

Prova a deselezionare la casella "Blocca push della riga di comando che espongono la mia e-mail" nelle impostazioni e -mail e quindi premi di nuovo.


20
deselezionando questa opzione si espone il mio indirizzo e-mail privato?
Franck Freiburger,

14
Sì, è quello che farà ma hai già esposto il tuo indirizzo e-mail se hai inviato commit al tuo repository. Anche se Github non mostrerà il tuo indirizzo e-mail, se clonerò il tuo repository posso vederli lo stesso, ed è ciò che impedirà questo nuovo dispositivo prevent-push.
Lasse V. Karlsen,

10
Questa è una soluzione discutibile. Almeno menzionate che questo esporrà il vostro indirizzo e-mail a tutto il mondo.
Kovac, il

Daniel AA Pelsmaeker e Winfried sono le risposte migliori.
Peter Mortensen,

1

Ho risolto gli errori di:

git config --global user.email ""

Questo ha appena impostato la mia e-mail su vuota (una stringa vuota). Ora imposto la mia e-mail in singoli progetti con:

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


0
  1. vai su github.com e fai clic sul tuo profilo
  2. vai alle impostazioni
  3. ora fai clic su "Email" nel riquadro di navigazione a sinistra
  4. e cerca il campo "Mantieni privati ​​i miei indirizzi email"
  5. deseleziona questa opzione
  6. ora controlla di nuovo e penso che il tuo problema sia stato risolto ora.

2
questo funzionerà ma esporrà il tuo indirizzo email privato. se sei preoccupato per la privacy, vedi altre soluzioni.
Kazazac,

-1

Deseleziona Blocca push della riga di comando che espone la mia e -mail e quindi prova a spingere il codice dalla riga di comando.


stessa cosa applicabile sapere?
LOG_TAG

questo funzionerà ma esporrà il tuo indirizzo email privato. se sei preoccupato per la privacy, vedi altre soluzioni.
Kazazac,

In che modo differisce dalla risposta di Jordan Lewis ?
Peter Mortensen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.