¿Git expone públicamente mi dirección de correo electrónico?

96

Las guías que he leído hasta ahora en Git dicen que debería ir a la configuración y especificar mi nombre y mi dirección de correo electrónico. No elaboran; solo dicen que lo haga.

¿Por qué Git necesita mi dirección de correo electrónico? Y, lo que es más importante, si hago que mi repositorio esté disponible públicamente, a través de GitHub, por ejemplo, ¿mi dirección de correo electrónico será visible para todos (incluidos los spambots)?

Joe White
fuente
19
Creo que esta es una pregunta válida (aunque no técnica) sobre una herramienta relacionada con la programación, como muchas otras preguntas sobre SO, y no merece ser rechazada como "no relacionada con la programación".
Jonik
3
¡GitHub ahora (agosto de 2013) le permite mantener su dirección de correo electrónico privada! Vea mi respuesta a continuación . También puede registrar una dirección de correo electrónico falsa para no usarla en las confirmaciones que está enviando a GitHub.
VonC

Respuestas:

36

Git usa su dirección de correo electrónico para identificarlo, así como para realizar otras tareas (como firmar una etiqueta con una clave GPG). Su dirección de correo electrónico se incrusta como parte de su identidad en los registros de confirmación, etc., junto con el nombre que especifique. Por ejemplo, el campo "autor" en un registro de confirmación se mostraría como:

Author: Joe White <[email protected]>

Entonces, la información está disponible para cualquier persona que tenga una copia del repositorio, ya que actúa como un identificador.

Sin embargo, es probable que su correo electrónico no sea visible para los spambots, a menos que use Gitweb, o un servicio como GitHub, para que su repositorio esté disponible a través de una interfaz web. (simplemente ponerlo en Internet no hace esto).

Supongo que podría completar una dirección de correo electrónico falsa o usar una cadena vacía o un espacio o algo (no creo que Git verifique el formato o la validez del correo electrónico), pero el correo electrónico es útil si alguien que clona el repositorio necesita enviar un parche o contactarte de alguna manera.

mipadi
fuente
3
Podría decirse que github, gitweb et al deberían tener una opción para ocultar las direcciones de correo electrónico como lo hacen los visores de archivos de listas de correo. Aunque ser una dirección de correo electrónico válida es solo una convención, herramientas como 'git send-email' se escriben asumiendo que es cierto (por ejemplo, copiar automáticamente a los autores de parches)
araqnid
2
Puede configurar git para usar otra identidad que la proporcionada por user.name y user.email para la clave GPG para firmar etiquetas
Jakub Narębski
Los sistemas de control de versiones centralizados más antiguos usan "nombre de usuario" para identificar al autor de una confirmación (de un cambio). Nombre + correo electrónico es una buena identidad; Sin embargo, no es necesario que sea un correo electrónico real.
Jakub Narębski
3
GitHub tiene una actualización en la que puede usar una dirección de correo electrónico falsa vinculada a su perfil - stackoverflow.com/a/20533922/2158473
RyPeck
GitHub puede recordar incluso las confirmaciones de relaciones públicas en una rama eliminada que se fusionaron con sing rebase (y, por lo tanto, no exponga el correo electrónico / nombre en ningún lugar del repositorio excepto en la página web de relaciones públicas). Si el PR se fusionó, no conozco ninguna forma de revertir las confirmaciones (si aún está abierto, puede volver a establecer la base y forzar el empuje).
DA
44

Actualización de abril de 2017

Ver " Correos electrónicos privados, ahora más privados "

GitHub ha admitido el uso de una dirección de correo electrónico alternativa "sin respuesta" para crear confirmaciones basadas en la web desde hace un tiempo. A partir de hoy, existe otra forma de asegurarse de que no publique inadvertidamente su dirección de correo electrónico al enviar confirmaciones a GitHub a través de la línea de comandos.

Git usa tu dirección de correo electrónico para asociar tu nombre a cualquier confirmación que hayas escrito. Una vez que envías tus confirmaciones a un repositorio público en GitHub, los metadatos de autoría también se publican.

Si desea asegurarse de no publicar accidentalmente su dirección de correo electrónico, simplemente marque las opciones "Mantener mi dirección de correo electrónico privada" y "Bloquear empujes de línea de comando que exponen mi correo electrónico" en la configuración de su correo electrónico .

https://cloud.githubusercontent.com/assets/33750/24673856/a995cb74-1947-11e7-8653-65bc604a4101.png

Nota: como se ha comentado más adelante por orev , Git no expone nada. GitHub , un servicio de alojamiento de repositorios de Git , podría.
El lugar donde está presionando su repositorio de Git local puede exponer metadatos.


Nota: A partir del 9 de agosto de 2013, ahora puede mantener la privacidad de su dirección de correo electrónico .

Sin embargo, eso es para las operaciones de GitHub basadas en la web: las confirmaciones aún contienen una dirección de correo electrónico, que podría o no ser la misma que la utilizada para su cuenta de GitHub.
Consulte a continuación para "enmascarar" ese correo electrónico (git commit) también.

Hasta el día de hoy, todo GitHub Flow basado en la web usaba su dirección de correo electrónico principal. Esto incluye la creación, edición y eliminación de archivos, así como la combinación de solicitudes de extracción.

Pero ahora puede mantener la privacidad de su dirección de correo electrónico. Para hacerlo, visite su página de configuración de correo electrónico:

Ajustes del correo electrónico

Con esta opción activada, las operaciones basadas en web utilizarán una dirección de correo electrónico [email protected].


Si desea ocultar su correo electrónico creado desde su computadora, GitHub ahora le permite registrar diferentes direcciones de correo electrónico : consulte esta guía .

Aún necesita configurar su correo electrónico (falso) en su repositorio local antes de regresar a GitHub, si desea que sus confirmaciones reflejen

git config --global user.email "[email protected]" # Set email to slightly changed value
git config --global user.email # Verify the setting
# [email protected]

Luego:

  • Vaya al menú de configuración de correos electrónicos
  • Haga clic en "Agregar otra dirección de correo electrónico".
  • Ingrese el correo electrónico falso (por ejemplo, " [email protected]") y haga clic en "Agregar"

agregar nueva dirección de correo electrónico

Tenga en cuenta que:

Esta configuración solo afecta a las confirmaciones futuras .
Si desea borrar su dirección de correo electrónico real del historial de confirmaciones de su repositorio, tendrá que volver a escribir sus antiguas confirmaciones. La forma más sencilla de hacerlo es:

Úselo git filter-branchpara reescribir el historial del repositorio y Force-push el nuevo historial hacia arriba.

VonC
fuente
1
Es útil saber esto, sin embargo, creo que debería quedar muy claro que GitHub no es lo mismo a git. gites una herramienta de control de revisiones, de código abierto y de propósito general, mientras que GitHub es un sitio web que le permite publicar un gitrepositorio. GitHub no creó git, simplemente han creado un sitio web muy agradable que funciona bien con él.
orev
@orev Buen punto. He incluido esa advertencia en la respuesta.
VonC
10

GitHub tiene un artículo de ayuda llamado Mantener la privacidad de su dirección de correo electrónico , que comienza:

Git requiere que te identifiques para poder realizar confirmaciones, pero puedes ocultar tu información de contacto usando una dirección falsa. A Git no le importa si el correo electrónico es válido.

Es bueno saberlo: aunque a Git no le importa, es posible que algunos proyectos no acepten contribuciones tuyas si tus confirmaciones no tienen una dirección de correo electrónico válida, por lo que querrás investigar las políticas de contribución de tu proyecto antes de seguir estas instrucciones.

GitHub no recibe muchos informes de spam que se envía a las direcciones de correo electrónico de confirmación de Git, pero si le preocupa, esta guía debería ayudarlo a abordar esas inquietudes.

La guía contiene pasos para configurar tanto Git como GitHub para usar una dirección falsa.

Hugo
fuente
Recibo mucho spam en mi dirección de correo electrónico de confirmación de GitHub. Yo uso uno dedicado para eso.
Mitar
6

Sí, las respuestas anteriores son correctas ... excepto que normalmente desea tener la misma dirección de correo electrónico para todos sus proyectos, entonces usaría el comando:

git config --global user.email "[email protected]"

También puede editar el archivo .gitconfig en su directorio de inicio, en la sección de usuario.

Puede especificar un correo electrónico diferente para un proyecto en particular haciendo el mismo comando sin la opción global.

Además, le sugiero que pueda ofuscar su correo electrónico si los envíos van a un área pública:

briancolfer(at)comcast.net

Como ejemplo.

bcolfer
fuente
5

Millones de correos electrónicos de confirmación de GitHub filtrados

https://github.com/cirosantilli/all-github-commit-emails extraídos de GitHub Archives https://www.githubarchive.org export commit.

El archivo de GitHub obtiene datos de la API de eventos de GitHub: https://developer.github.com/v3/activity/events/types/#pushevent y los exporta a Google BigQuery cada hora, lo que facilita la consulta.

Los correos electrónicos se muestran en eventos de tipo PushEvent.

No creo que los correos electrónicos de confirmación se muestren en ninguna parte de la interfaz web de GitHub, por lo que cualquier colección está limitada por la limitación de la tasa de API. TODO: cuánto tiempo para recopilar 1 millón de correos electrónicos a través de API desde cero.

Manera práctica de obtener el correo electrónico de confirmación de alguien con la API

ghmail() { curl "https://api.github.com/users/$1/events/public" | grep email; }
ghmail cirosantilli

o visite: https://api.github.com/users/cirosantilli/events/public

También hay:

La estructura de datos de confirmación de Git tiene un autor explícito y un campo de correo electrónico de confirmación

Se muestra en: ¿Cuál es el formato de archivo de una estructura de datos de objeto de confirmación de git?

Por lo tanto, está claro que esta información se agrega a las confirmaciones de forma predeterminada.

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
fuente
4

Sí, su dirección de correo electrónico (como se especifica en git config user.email) será visible en interfaces web como GitWeb. Además, todo el mundo puede conocer su dirección de correo electrónico clonando su repositorio, aunque probablemente esto vaya más allá de los spambots. Sin embargo, nadie te obliga a usar una dirección de correo electrónico real. Git establecerá automáticamente una dirección de correo electrónico construida si no se proporciona ninguna. En mi máquina sin user.emailél muestra confirmaciones por "Foo <foo @ hija. (Ninguna)>".

Bombe
fuente
4

Puede cambiar retroactivamente el nombre del autor, el correo electrónico, etc. TENGA CUIDADO que hacer lo siguiente puede dañar su historial.

#!/bin/sh

git filter-branch --env-filter '

an="$GIT_AUTHOR_NAME"
am="$GIT_AUTHOR_EMAIL"
cn="$GIT_COMMITTER_NAME"
cm="$GIT_COMMITTER_EMAIL"

if [ "$GIT_COMMITTER_EMAIL" = "[email protected]" ]
then
    cn="Your New Committer Name"
    cm="Your New Committer Email"
fi
if [ "$GIT_AUTHOR_EMAIL" = "[email protected]" ]
then
    an="Your New Author Name"
    am="Your New Author Email"
fi

export GIT_AUTHOR_NAME="$an"
export GIT_AUTHOR_EMAIL="$am"
export GIT_COMMITTER_NAME="$cn"
export GIT_COMMITTER_EMAIL="$cm"
'

Tomado de aqui

eggonlegs
fuente