Errore "Il tuo push pubblicherebbe un indirizzo email privato"


110

Sono molto nuovo su GitHub / VCS .

Quando provo a condividere il mio progetto su GitHub, ricevo il seguente messaggio di errore.

    Can't finish GitHub sharing process
    Successfully created project 'myproject' on GitHub, but initial push failed:
    remote: error: GH007: Your push would publish a private email address.
    failed to push some refs to 'https://github.com/me/myproject.git'

Ho cercato su Google il messaggio di errore e non ho ricevuto risultati. Ho anche cercato Stack Exchange, ma niente sigari. Come posso risolvere questo problema?

Risposte:


66

Ho riscontrato lo stesso error: GH007messaggio e ho utilizzato quanto segue per risolvere il problema.

  1. Vai a Impostazione dell'indirizzo email di commit .
  2. Segui l' impostazione del tuo indirizzo e-mail per ogni repository sul tuo computer .
  3. Apri il tuo account GitHub e vai su ImpostazioniEmail .
  4. Seleziona la casella di controllo Mantieni privato il mio indirizzo email .
  5. Deseleziona la casella di controllo Blocca push della riga di comando che espongono la mia posta elettronica .

Tuttavia, questo potrebbe esporre il tuo indirizzo email.


24
Questa è una soluzione ma potrebbe effettivamente esporre il tuo indirizzo email. Se hai commit che non sono stati ancora inviati, dovrai deselezionare Blocca push della riga di comando che espongono la mia email. Quindi puoi spingere quei commit in sospeso. Successivamente, aggiorna il tuo indirizzo e-mail con l'indirizzo e-mail senza risposta e seleziona Blocca i push della riga di comando che espongono nuovamente la mia e-mail per mantenere privato il tuo indirizzo.
SvenAelterman

5
@SvenAelterman update your email address to the no-reply email addressdove? Nelle impostazioni di GitHub o sulla tua macchina locale da qualche parte che presumibilmente sta inviando / utilizzando il tuo indirizzo email privato? Mi sembra controintuitivo che potrei dover copiare e incollare un indirizzo e-mail generato da github direttamente in github piuttosto che fare clic su una casella di controllo, quindi presumo che la lettura non sia corretta. O è??
Hippietrail

15
Per modificare l'e-mail per l'ultimo utilizzo del commitgit commit --amend --author="Author Name <email@address.com>"
dspacejs

9
Molto meglio usare la soluzione @Winfried s' qui . Non esporrà pubblicamente il tuo indirizzo email
Connor

8
D'accordo, la risposta corretta è @ di Winfried stackoverflow.com/a/51097104/7872793 .
Shane

230

Quando abiliti la funzione "Blocca i push della riga di comando che espongono la mia posta", dovrai anche configurare Git per utilizzare il tuo indirizzo e-mail senza risposta. Non preoccuparti: questo non influirà sul grafico del tuo contributo. Tutti i commit saranno comunque associati al tuo account.

  1. Apri Terminale.

  2. Cambia la directory di lavoro corrente nel repository locale in cui desideri configurare l'indirizzo email che associ ai tuoi commit Git.

  3. Trova il tuo indirizzo GitHub noreply nelle Impostazioni personali di GitHub → Email . È menzionato nella descrizione della casella di controllo Mantieni privato il mio indirizzo email . Di solito, inizia con un identificatore univoco, più il tuo nome utente.

  4. Imposta un indirizzo email in Git. Usa il tuo indirizzo email senza risposta fornito da GitHub.

    • Impostazione del tuo indirizzo email per ogni repository sul tuo computer

      git config --global user.email "{ID}+{username}@users.noreply.github.com"
      
    • Impostazione del tuo indirizzo email per un singolo repository

      git config user.email "{ID}+{username}@users.noreply.github.com"
      
  5. Reimposta le informazioni sull'autore sul tuo ultimo commit:

    git commit --amend --reset-author
    

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

  6. Ora puoi eseguire il push del commit con l'indirizzo e-mail noreply, e anche i commit futuri avranno l'indirizzo e-mail noreply.

    git push
    

Una volta configurato Git, i commit useranno il tuo indirizzo email alternativo "noreply" e qualsiasi push che non lo fa verrà rifiutato.


28
Questa dovrebbe essere la risposta accettata. La risposta di @ sofia-fernandez può esporre indirizzi email. C'è un modo per renderlo un po 'più breve e più leggibile? Hai due sezioni principali in cui l'unica differenza è la --globalbandiera
Connor

Ho avuto qualche problema con l'interfaccia Linux (ho usato il terminale SourceTree ed è passato del tempo da quando ho usato VI), puoi aggiungere -m <comment>se vuoi evitarlo.
MikeL

2

Probabilmente hai abilitato (o è abilitato ora per impostazione predefinita) la funzione di privacy della posta elettronica di GitHub.

È dettagliato in questa pagina nella guida di GitHub .

In breve, c'è un interruttore che puoi abilitare (che è abilitato sul tuo account) che impedisce qualsiasi push in cui l'utente è il tuo attuale indirizzo email. Puoi invece utilizzare un indirizzo anonimo (o scegliere di disabilitare la funzione).

I dettagli per entrambe le opzioni sono disponibili nella stessa pagina .


Grazie! Ho reso anonimo i miei indirizzi e-mail e questo ha risolto il problema!
user156060

L'utilizzo dell'indirizzo e-mail anonimo è una buona soluzione. Se l'hai creato prima del 18 luglio 2017, potresti volerlo fare di nuovo per aggiungere 7 cifre casuali.
SvenAelterman


0
  1. Vai a Settings
  2. Fare clic su Emails. Scorri fino in fondo. Keep my email addresses privatesezione sarà lì.
  3. Annota l'ID e-mail pubblico menzionato lì.
  4. Reimposta il tuo ID e-mail globale locale con l'ID e-mail pubblico menzionato nel passaggio precedente utilizzando il comando seguente.
$ git config — global user.email "<user_email_id>"
  1. Ripristina l'ultimo commit locale che era stato bloccato.
$ git reset --soft HEAD~1 
  1. Fai un nuovo impegno e spingilo. Funzionerà.

-2

Ho avuto lo stesso problema. La mia soluzione è nella foto qui sotto:

Impostazioni di GitHub


7
Hai impostato la pubblicazione della tua email, aperta a tutti i raschietti e simili, ma poi la
offuschi

In che modo è diverso dalla risposta accettata (pubblicata quasi un anno prima)?
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.