Error "Su inserción publicaría una dirección de correo electrónico privada"

110

Soy muy nuevo en GitHub / VCS .

Cuando intento compartir mi proyecto en GitHub, aparece el siguiente mensaje de error.

    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'

Busqué en Google el mensaje de error y no obtuve resultados. También busqué Stack Exchange, pero no cigarro. ¿Cómo puedo solucionar este problema?

user156060
fuente

Respuestas:

66

También experimenté el mismo error: GH007mensaje y utilicé lo siguiente para resolver el problema.

  1. Vaya a Configuración de su dirección de correo electrónico de confirmación .
  2. Siga la Configuración de su dirección de correo electrónico para cada repositorio en su computadora .
  3. Abra su cuenta de GitHub y vaya a ConfiguraciónCorreos electrónicos .
  4. Seleccione la casilla de verificación Mantener mi dirección de correo electrónico privada .
  5. Anule la selección de la casilla de verificación Bloquear empujes de línea de comando que exponen mi correo electrónico .

Sin embargo, esto puede exponer su dirección de correo electrónico.

sofia fernandez
fuente
24
Esta es una solución, pero en realidad podría exponer su dirección de correo electrónico. Si tiene confirmaciones que aún no se han enviado, deberá desmarcar Bloquear empujes de línea de comando que exponen mi correo electrónico. Luego, puede enviar esas confirmaciones pendientes. Luego, actualice su dirección de correo electrónico a la dirección de correo electrónico sin respuesta y marque Bloquear empujes de línea de comando que exponen mi correo electrónico nuevamente para mantener su dirección privada.
SvenAelterman
5
@SvenAelterman update your email address to the no-reply email address¿dónde? ¿En la configuración de github o en su máquina local en algún lugar que presumiblemente esté enviando / usando su dirección de correo electrónico privada? Me parece contrario a la intuición que se suponga que debo copiar y pasar una dirección de correo electrónico generada por github directamente a github en lugar de hacer clic en una casilla de verificación, por lo tanto, supongo que la lectura es incorrecta. ¿¿O es eso??
hippietrail
15
Para cambiar el correo electrónico para su último uso de confirmacióngit commit --amend --author="Author Name <[email protected]>"
dspacejs
9
Es mucho mejor usar la solución de @Winfried aquí . No expondrá su dirección de correo electrónico públicamente
Connor
8
De acuerdo, la respuesta correcta es stackoverflow.com/a/51097104/7872793 de @ Winfried .
Shane
230

Al habilitar la función "Bloquear empujes de línea de comando que exponen mi correo electrónico", también querrá configurar Git para usar su dirección de correo electrónico sin respuesta. No se preocupe, esto no afectará su gráfico de contribución. Todas las confirmaciones seguirán estando asociadas a su cuenta.

  1. Terminal abierta.

  2. Cambie el directorio de trabajo actual al repositorio local donde desea configurar la dirección de correo electrónico que asocia con sus confirmaciones de Git.

  3. Busque su dirección de GitHub sin respuesta en la Configuración personal de GitHub → Correos electrónicos . Se menciona en la descripción de la casilla de verificación Mantener mi dirección de correo electrónico privada . Por lo general, comienza con un identificador único, más su nombre de usuario.

  4. Establezca una dirección de correo electrónico en Git. Use su dirección de correo electrónico de no respuesta proporcionada por GitHub.

    • Configurar su dirección de correo electrónico para cada repositorio en su computadora

      git config --global user.email "{ID}+{username}@users.noreply.github.com"
      
    • Configuración de su dirección de correo electrónico para un único repositorio

      git config user.email "{ID}+{username}@users.noreply.github.com"
      
  5. Restablece la información del autor en tu última confirmación:

    git commit --amend --reset-author
    

    Si tiene varias confirmaciones con su dirección de correo electrónico privada, consulte esta respuesta .

  6. Ahora puede enviar la confirmación con la dirección de correo electrónico de noreply, y las confirmaciones futuras también tendrán la dirección de correo electrónico de noreply.

    git push
    

Una vez que configure Git, las confirmaciones usarán su dirección de correo electrónico alternativa "sin respuesta", y cualquier envío que no lo haga será rechazado.

Winfried
fuente
28
Esta debería ser la respuesta aceptada. @ sofia-fernandez answer puede exponer direcciones de correo electrónico. ¿Hay alguna manera de hacer esto un poco más corto y más legible? Tiene dos secciones principales donde la única diferencia es la --globalbandera
Connor
Tuve algunos problemas con la interfaz de Linux (usé el terminal SourceTree y ha pasado algún tiempo desde que usé VI), puede agregarlo -m <comment>si desea evitarlo.
MikeL
2

Probablemente haya habilitado (o está habilitado ahora de forma predeterminada) la función de privacidad del correo electrónico de GitHub.

Se detalla en esta página en la ayuda de GitHub .

En resumen, hay una palanca que puede habilitar (que está habilitada en su cuenta) que evita cualquier inserción donde el usuario es su dirección de correo electrónico real. En su lugar, puede usar una dirección anónima (o elegir deshabilitar la función).

Los detalles de ambas opciones están disponibles en la misma página .

Burhan Khalid
fuente
¡Gracias! ¡Anonimicé mis direcciones de correo electrónico y eso resolvió el problema!
user156060
Usar la dirección de correo electrónico anonimizada es una buena solución. Si lo creó antes del 18 de julio de 2017, es posible que desee volver a hacerlo para que se le agreguen 7 dígitos aleatorios.
SvenAelterman
La respuesta de Winfried es la respuesta autónoma.
Peter Mortensen
0
  1. Ir Settings
  2. Haga clic en Emails. Desplácese hasta el final.Keep my email addresses privatela sección estará allí.
  3. Anote la identificación de correo electrónico pública mencionada allí.
  4. Restablezca su identificación de correo electrónico global local con la identificación de correo electrónico pública mencionada en el paso anterior usando el siguiente comando.
$ git config — global user.email "<user_email_id>"
  1. Revierte tu última confirmación local que se estaba bloqueando.
$ git reset --soft HEAD~1 
  1. Haz un compromiso nuevo y empújalo. Funcionará.
Yuvraj Patil
fuente
-2

Tuve el mismo problema. Mi solución está en la siguiente imagen:

Configuración de GitHub

Peter Doherty
fuente
7
Configuraste para publicar tu correo electrónico, abierto a todos los raspadores y demás, pero luego lo borras por ahí
Lesto
¿En qué se diferencia de la respuesta aceptada (publicada casi un año antes)?
Peter Mortensen