Qué controla realmente el correo en un commit
El correo del autor de un commit lo establece la configuración de Git en la máquina que crea el commit, no el correo que se muestra en tu perfil de GitHub. El correo de tu perfil de GitHub es un ajuste aparte que se usa para notificaciones, recuperación de cuenta y algunas acciones de la interfaz web. Si haces commits desde una terminal, la dirección que se escribe en el objeto del commit proviene de tu valor local user.email. Esa distinción es la clave: cambiar el correo de tu perfil no afecta a los futuros commits de línea de comandos, y cambiar tu configuración local de Git no afecta a los commits ya subidos.
La configuración de Git controla el correo que se adjunta a los commits futuros hechos desde la línea de comandos. Fuente
Antes de cambiar nada, entiende qué estás auditando. No intentas borrar tu correo de GitHub. Intentas decidir qué dirección debe aparecer en los commits que crees a partir de ahora, y si alguno de tus repositorios todavía depende de la dirección antigua para la atribución o para herramientas.
Paso 1: Inspecciona la identidad que llevan tus commits actualmente
Empieza por ver qué contienen realmente tus commits recientes. En un repositorio que sea tuyo, ejecuta un log que muestre los campos de correo del autor y del committer para los últimos commits. El objetivo es ver la cadena exacta de la dirección, no juzgar todavía si es sensible. Hazlo en cada repositorio donde hagas push desde la línea de comandos, porque la configuración local puede variar de un repositorio a otro.
A continuación, revisa la configuración efectiva que Git usará en ese repositorio. Git resuelve la configuración desde varios ámbitos, y un valor a nivel de repositorio anula uno global. Si ves una dirección que no reconoces, puede venir de un ajuste local del repositorio, de un archivo de configuración incluido o de una variable de entorno en tu shell. Anota lo que encuentres antes de editar; una auditoría que no puedes reproducir no es una auditoría.
Paso 2: Separa los dos ajustes en tu cabeza
Usa esta tabla de decisión para mantener distintos el ajuste del perfil y el ajuste del commit. Describe la mecánica general que puedes verificar en tu propia cuenta y terminal; no afirma etiquetas de menú específicas ni rutas actuales de la interfaz.
| Pregunta | Lo gobierna | Qué afecta cambiarlo | Qué no afecta |
|---|---|---|---|
| ¿Qué correo aparece en mi perfil de GitHub? | La configuración de correo de la cuenta de GitHub | La visualización del perfil, las notificaciones, la recuperación de cuenta | El correo del autor en los commits que creas localmente |
| ¿Qué correo se escribe en un nuevo commit? | La configuración local de Git user.email | Los commits futuros hechos desde esa máquina o repositorio | Los commits ya creados o subidos |
| ¿Cambiarán los commits antiguos si cambio a noreply? | Nada automático | Nada | Los objetos de commit existentes conservan su correo de autor original |
| ¿Puedo ocultar mi correo de los futuros commits públicos? | La configuración local de Git más una dirección noreply | Los nuevos commits que hagas después del cambio | El historial pasado, los forks y las copias en caché en otros lugares |
La conclusión práctica de la tabla: tienes dos palancas independientes. Usa la palanca del commit si tu preocupación son los futuros pushes. No esperes que la palanca del perfil haga ese trabajo.
Paso 3: Elige una dirección noreply y configúrala localmente
GitHub ofrece una opción de dirección noreply. El formato exacto está documentado por GitHub y puede cambiar con el tiempo, así que copia la dirección desde la configuración de tu propia cuenta, no desde un blog. Una vez la tengas, establécelas como correo de commit en el ámbito que corresponda a tu flujo de trabajo.
Una secuencia segura:
- Copia la dirección noreply que te proporciona GitHub desde la configuración de tu cuenta.
- Decide el ámbito: establécelo globalmente si todos los repositorios de la máquina deben usarlo, o por repositorio si contribuyes a proyectos que esperan una identidad diferente.
- Aplica el ajuste con
git configen el ámbito elegido. - Crea un commit de prueba en una rama de borrador e inspecciona su correo de autor antes de hacer push.
- Haz push solo después de que el commit de prueba muestre la dirección noreply.
GitHub ofrece una opción de dirección noreply; cambiar la dirección configurada no reescribe los commits existentes. Fuente
Ese segundo punto es el que la gente pasa por alto. Cambiar a noreply es un control orientado al futuro. No reescribe los commits existentes y no elimina tu dirección antigua de los objetos de commit que ya son públicos. Si un repositorio se ha bifurcado o replicado, esas copias conservan los datos originales del commit independientemente de lo que configures hoy.
Paso 4: Revisa por separado el comportamiento de la interfaz web y de las herramientas
Los commits creados a través de la interfaz web de GitHub, o por bots e integraciones, pueden usar una ruta de identidad diferente a la de tu terminal local. No asumas que un cambio en la configuración local cubre todos los commits que llegan a un repositorio. Revisa los campos de autor en commits de distintas fuentes y anota cuáles controlas directamente. Para las integraciones que no controlas, la respuesta honesta es que no puedes establecer su identidad de commit desde tu portátil; solo puedes decidir si sigues usando esa integración.
Paso 5: Decide qué hacer con el historial antiguo
Tienes tres opciones realistas, y ninguna es «hacer desaparecer la exposición antigua».
| Opción | Qué hace | Coste y límites |
|---|---|---|
| Dejar el historial como está | Sin riesgo de romper clones o referencias | Los commits antiguos conservan el correo de autor original |
| Reescribir el historial en tu propio repositorio | Cambia los objetos de commit en ese repositorio en adelante | La reescritura es disruptiva, no llega a forks ni réplicas, y queda fuera del alcance de la mayoría de los usuarios |
| Eliminar o rotar la dirección expuesta | Reduce la exposición futura si la dirección sigue activa | No altera los commits que ya la contienen |
Para la mayoría de los lectores, el movimiento correcto es el primero o el tercero: deja de añadir la dirección a nuevos commits y trata los commits antiguos como permanentemente públicos. Si la dirección expuesta es una que todavía usas para iniciar sesión o recuperar la cuenta, considera si debería seguir asociada a la cuenta. Esa es una decisión de seguridad de la cuenta, no de configuración de Git.
Errores comunes
- Cambiar el correo del perfil y asumir que los commits están arreglados. El ajuste del perfil y la identidad del commit son cosas separadas. Los futuros commits de terminal seguirán llevando la dirección antigua hasta que cambies la configuración local de Git.
- Configurar noreply globalmente sin comprobar las anulaciones del repositorio. Un
user.emaillocal del repositorio prevalecerá sobre tu valor global. Audita cada repositorio donde hagas push. - Subir un commit de prueba a una rama pública. Verifica el correo del autor en una rama de borrador o con un log local antes de hacer push.
- Creer que cambiar a noreply limpia el historial. No reescribe los commits existentes y no puede llegar a forks, réplicas ni copias en caché.
- Asumir que toda fuente de commits está bajo tu control. Los commits de la interfaz web y los de integraciones pueden usar identidades diferentes; revísalos en lugar de asumirlo.
- Tratar un perfil editado como una eliminación. Cambiar lo que muestra tu perfil no borra datos almacenados ni altera los objetos de commit.
Proteger tu propia huella
El correo de los commits es un canal estrecho. Tu huella pública también incluye los nombres de usuario y perfiles vinculados a esa dirección en otras plataformas. Si estás auditando una dirección porque apareció en algún lugar público, el siguiente paso útil es ver qué cuentas públicas están asociadas a ella. La guía de TruthsSeek sobre cómo encontrar cuentas vinculadas a una dirección de correo recorre ese proceso de revisión, y la página de búsqueda de GitHub en /find/github/ es un punto de partida para comprobar un nombre de usuario conocido. TraceSeek, la aplicación de la que habla TruthsSeek, comprueba un nombre de usuario en 3.000+ plataformas y ofrece un primer escaneo gratuito; el producto indica que un escaneo tarda 20–30 segundos. Estas herramientas muestran coincidencias públicas como pistas, no como prueba de propiedad, y no cambian la configuración de las plataformas ni exponen registros privados. Úsalas para mapear lo que ya es público y luego haz los cambios de configuración en las propias plataformas.
Una rutina realista: corrige tu identidad local de Git una vez, verifícala con un commit de prueba y luego vuelve a comprobar periódicamente los campos de autor en commits de nuevas herramientas o máquinas. Trata cada commit subido como dato público permanente, porque en la práctica normalmente lo es.
Datos clave
- La configuración de Git controla el correo que se adjunta a los commits futuros hechos desde la línea de comandos.
- GitHub ofrece una opción de dirección noreply; cambiar la dirección configurada no reescribe los commits existentes.
- El ajuste de correo del perfil de GitHub y el ajuste local de correo de commit de Git son controles separados con efectos diferentes.
- TraceSeek comprueba nombres de usuario en 3.000+ plataformas y ofrece un primer escaneo gratuito, con un tiempo de escaneo indicado por el producto de 20–30 segundos.
- Las coincidencias públicas de nombres de usuario son pistas, no prueba de propiedad de la cuenta.