Curso
¿Tus confirmaciones aparecen con un nombre incorrecto en el historial de Git?
Haces una confirmación, la envías al repositorio del equipo y, de repente, tu compañero de trabajo pregunta quién es «desconocido». O peor aún, tu correo electrónico personal aparece en un proyecto de trabajo. Es un error de principiante, pero a todos os ha pasado alguna vez. Git almacena un nombre y un correo electrónico con cada confirmación para que los equipos puedan realizar un seguimiento de quién ha cambiado qué, y cuando no se configura correctamente, las confirmaciones parecen provenir de otra persona.
La solución es sencilla: Git utiliza user.name y user.email de tu configuración. Cuando la gente dice «git config username», se refiere a user.name. Y no, no es lo mismo que tu nombre de usuario de GitHub.
En este artículo, te explicaré cómo configurar tu nombre de usuario de Git de forma global o local, cómo comprobar tu configuración actual, cómo utilizar diferentes nombres para diferentes proyectos y cómo solucionar problemas comunes relacionados con los nombres de usuario.
Aprende hoy los fundamentos de Git
Respuesta rápida: Cómo configurar tu nombre de usuario de Git
Aquí tienes los dos comandos que necesitas:
# Set Git username globally (all repos)
git config --global user.name "Your Name"
# Set Git username for the current repo only
git config user.name "Your Name"
La configuración global se aplica a todos los repositorios de tu máquina, a menos que un repositorio específico la anule.
El comando simple « git config » (sin « --global ») solo afecta al repositorio en el que te encuentras actualmente.
Ejecuta este comando para comprobar qué utilizará Git para tu próxima confirmación:
git config user.name
Esto muestra el nombre de usuario activo para tu ubicación actual, ya sea la configuración del repositorio local o la configuración global alternativa si no existe una configuración local.
git config user.name
Esto muestra el nombre de usuario activo para tu ubicación actual, ya sea la configuración del repositorio local o la configuración global alternativa si no existe una configuración local.

Acerca de los nombres de usuario y la identidad en Git
Git incluye dos datos en cada confirmación que haces: un nombre del autor y un correo electrónico del autor.
Estos provienen directamente de user.name y user.email en tu configuración de Git. Cuando ejecutas git commit, Git toma los valores establecidos y los graba de forma permanente en los metadatos de esa confirmación. Tus compañeros de equipo ven esta información en git log, vistas de culpa y solicitudes de extracción.
Git no valida nada de esto.
Puedes poner tu nombre como «Batman», «Linus Torvalds» o simplemente tu nombre de pila con la inicial de tu apellido. Los programadores preocupados por la privacidad suelen utilizar seudónimos o apodos en lugar de sus nombres completos, especialmente en el caso de trabajos públicos de código abierto. A Git simplemente no le importa. Solo graba lo que tú le dices.
Lo único que debes recordar es que tu nombre de usuario de Git no es el mismo que tu nombre de usuario de GitHub.
Tu nombre de usuario de Git (user.name) es el que configures localmente. Tu nombre de usuario de GitHub es tu identificador de cuenta, o lo que aparece en direcciones URL como github.com/your-handle. Son sistemas completamente independientes y no tienen por qué coincidir.
Las plataformas de alojamiento como GitHub y GitLab utilizan tu dirección de correo electrónico para vincular las confirmaciones a tu cuenta. El nombre es solo para mostrar. Si tu correo electrónico de confirmación coincide con el correo electrónico de tu cuenta de GitHub, GitHub mostrará tu foto de perfil y un enlace a tu cuenta. El nombre que estableces en user.name aparece como texto, pero el correo electrónico es el que realmente vincula las confirmaciones contigo.
Cambiar user.name solo afecta a las confirmaciones que realices en adelante. Las confirmaciones antiguas que ya hayas enviado conservan el nombre original del autor.
Cómo funciona git config para user.name
Git almacena los ajustes de configuración en tres lugares diferentes. Ahora te mostraré cuáles son, para que no te encuentres con nombres inesperados.
-
La configuración a nivel del sistema (
--system) se aplica a todos los usuarios del equipo. Esto es poco habitual en la práctica y la mayoría de los programadores nunca lo tocan. -
La configuración global (
--global) se aplica a tu cuenta de usuario del sistema operativo y abarca todos tus repositorios. -
Configuración local (
--local) se encuentra dentro del archivo.git/configde un único repositorio y solo afecta a ese repositorio.
Git utiliza reglas de prioridad para decidir qué valor prevalece.
La configuración local tiene prioridad sobre la configuración global, que a su vez tiene prioridad sobre la configuración del sistema. Si estableces user.name en los tres niveles, Git utilizará el valor local cuando estés dentro de ese repositorio e ignorará los demás.
Supongamos que tienes:
-
Sistema:
user.name = "System User" -
Global:
user.name = "Global User" -
Local (dentro de un repositorio específico):
user.name = "Local User"
Cuando realizas una confirmación dentro de ese repositorio, Git utiliza «Usuario local» porque local es lo más específico en este caso. Fuera de ese repositorio, Git recurre al «usuario global» de tu configuración global.
Puedes ver todos tus valores de configuración y de dónde provienen:
git config --list
git config --list --show-origin

La bandera ` --show-origin ` imprime la ruta del archivo junto a cada configuración. Así es como se depura «¿por qué Git utiliza este nombre?». Verás exactamente qué archivo de configuración está estableciendo el valor.
Estos archivos de configuración se encuentran en ubicaciones predecibles: ~/.gitconfig para la configuración global y .git/config dentro de cada repositorio para la configuración local. La configuración del sistema suele encontrarse en /etc/gitconfig en Linux y macOS.
Cuando ejecutas git config --global user.name "Your Name", Git escribe en ~/.gitconfig y ese valor se convierte en tu valor predeterminado para todos los repositorios, a menos que lo sobrescribas localmente.
Cómo comprobar tu nombre de usuario actual en Git
Necesitas saber qué nombre le pondrá Git a tu próxima confirmación. Te mostraré un par de comandos que puedes ejecutar.
Comandos rápidos para ver el nombre de usuario.
Estos son los comandos que muestran tu nombre de usuario de Git:
# Show the active user.name for the current repo (or global if outside a repo)
git config user.name
# Show specifically the global username
git config --global user.name
# Show everything and scan for user.name and user.email
git config --list

El primer comando, « git config user.name », es el que se utiliza en la mayoría de los casos. Muestra el valor que Git utilizará realmente en ese repositorio. Si estás dentro de un repositorio con una sustitución local, verás el valor local. Si no es así, verás la alternativa global.
Si deseas filtrar la lista completa de configuraciones, simplemente canalízala a través de grep:
git config --list | grep user.name
git config --list | grep user.name

Esto funciona en Linux y macOS. En Windows, utiliza findstr en lugar de grep.
Entender lo que ves
Si git config user.name imprime un valor dentro de un repositorio, ese es el que Git utilizará cuando realices una confirmación allí.
Pero git config --global user.name podría mostrar algo diferente. Git ignora el valor global si existe una configuración local. Aquí es donde la gente se confunde. Cambian la configuración global y se preguntan por qué las confirmaciones siguen mostrando el nombre antiguo.
Utiliza git config --list --show-origin para depurar esto:
git config --list --show-origin
git config --list --show-origin

Esto imprime la ruta del archivo de donde proviene cada configuración: - gitconfig para local, ~/.gitconfig para global o /etc/gitconfig para el sistema. Busca « user.name » y verás exactamente qué archivo de configuración está ganando.
Paso a paso: Configuración de tu nombre de usuario Git
La mayoría de los programadores establecen su nombre de usuario de Git una vez y se olvidan de él. Sin embargo, también puedes personalizarlo por proyecto cuando sea necesario.
Configuración global de tu nombre de usuario Git
Esta es la configuración única que se realiza en un equipo nuevo.
- Abre Terminal (macOS/Linux) o Git Bash (Windows).
- Ejecuta el comando config con tu nombre:
git config --global user.name "Your Name"
3. Comprueba que ha funcionado:
git config --global user.name
Git utilizará ahora este nombre para cada confirmación en todos los repositorios de tu máquina, a menos que lo sobrescribas localmente.
También deberías configurar tu correo electrónico mientras estás aquí:
git config --global user.email "your.email@example.com"
Es necesario establecer ambos valores para que las confirmaciones funcionen correctamente y se vinculen con tu cuenta de GitHub o GitLab.
git config --global user.email "your.email@example.com"
Si necesitas nombres diferentes para proyectos diferentes, como tu nombre real para repositorios de trabajo y un seudónimo para código abierto, por ejemplo.
A continuación, se explica cómo anular la configuración global para un repositorio:
1. Navega hasta el repositorio:
cd /path/to/your/repo
2. Establece el nombre de usuario local:
git config user.name "Project-Specific Name"
3. Verifica que Git lo utilizará:
git config user.name
Este valor se encuentra en .git/config dentro de ese repositorio y anula tu usuario.nombre global solo para ese repositorio. Los demás repositorios de tu máquina no se ven afectados.
Consejo avanzado: Nombres de usuario diferentes para carpetas diferentes con includeIf
Si trabajas en varios proyectos con identidades diferentes, por ejemplo, todos los repositorios bajo ~/work/ utiliza tu nombre de trabajo y todo lo que esté bajo ~/personal/ utiliza un seudónimo, puedes automatizar esto con includeIf.
Añade esto a tu ~/.gitconfig:
[includeIf "gitdir:~/work/"]
path = ~/.gitconfig-work
[includeIf "gitdir:~/personal/"]
path = ~/.gitconfig-personal
A continuación, crea archivos de configuración independientes como ~/.gitconfig-work:
[user]
name = "Work Name"
email = "work@company.com"
Y ~/.gitconfig-personal:
[user]
name = "Personal Handle"
email = "personal@email.com"
Git selecciona automáticamente la identidad correcta en función de la ubicación del repositorio. No es necesario cambiar manualmente.
Escenarios comunes y mejores prácticas
A continuación, te explicamos cómo manejar las situaciones más comunes relacionadas con los nombres de usuario de Git sin crear un lío.
Mantener separadas las identidades laboral y personal
Establece tu nombre personal de forma global y, a continuación, sustitúyelo por el de los proyectos de trabajo. De esta forma, tus repositorios personales utilizarán por defecto tu identidad preferida, y los repositorios de trabajo utilizarán tu nombre profesional.
El enfoque más limpio es utilizar includeIf para cambiar automáticamente de identidad en función de la carpeta:
# In ~/.gitconfig
[user]
name = "Personal Name"
email = "personal@email.com"
[includeIf "gitdir:~/work/"]
path = ~/.gitconfig-work
A continuación, crea ~/.gitconfig-work con tu identidad de trabajo. Todos los repositorios en ~/work/ obtienen el nombre del trabajo automáticamente. Lo expliqué en la sección anterior.
También puedes establecer una configuración local por repositorio si solo tienes un par de proyectos de trabajo, pero includeIf se adapta mejor cuando manejas múltiples identidades en muchos repositorios.
Usar un seudónimo o apodo
A Git no le importa si utilizas tu nombre legal.
Puedes configurar user.name como un nombre de usuario, un nombre con la inicial del apellido o cualquier otra opción que se ajuste a tus preferencias de privacidad. Esto es habitual en los trabajos de código abierto, en los que los colaboradores desean mantener cierto anonimato. Simplemente elige algo que ayude a tu equipo a identificar tus compromisos.
Identidades de equipos o bots
Las confirmaciones automatizadas deben utilizar nombres descriptivos como «CI Bot» o «Deploy Script» para que destaquen en el historial.
git config user.name "CI Bot"
git config user.email "ci@company.com"
Con este enfoque, al escanear git log o revisando las anotaciones de blame.
Recuerda alinear el nombre y el correo electrónico en las plataformas de alojamiento.
GitHub y GitLab asocian las confirmaciones a tu cuenta utilizando la dirección de correo electrónico, no el nombre. Si tu correo electrónico de confirmación coincide con el correo electrónico de tu cuenta de GitHub, GitHub vincula la confirmación a tu perfil y muestra tu avatar.
El valor de user.name aparece como texto en la interfaz de usuario, en las solicitudes de extracción, las vistas de culpa y el historial de confirmaciones. Configúralo de forma clara para que tus compañeros de equipo sepan quién ha realizado el cambio.
Solución de problemas relacionados con el nombre de usuario de git config
Si algo relacionado con el nombre de usuario de git no funciona, probablemente encontrarás aquí la causa y la solución.
Git dice «por favor, dime quién eres» o no puede detectar automáticamente tu identidad.
Verás un error como este cuando intentes realizar la confirmación:
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
Esto significa que Git no tiene configurado tu user.email y, en ocasiones, tampoco tieneuser.name. Soluciona el problema configurando ambos globalmente:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
Después de eso, los commits funcionarán.
Tus confirmaciones muestran un nombre incorrecto en GitHub o GitLab.
Comprueba qué nombre está utilizando Git realmente en ese repositorio:
git config user.name
Si aparece un nombre incorrecto, es posible que se haya establecido una sustitución local. Soluciona el problema con este comando:
git config user.name "Correct Name"
Las nuevas confirmaciones utilizarán el nombre correcto, pero las antiguas que ya hayas enviado mantendrán el nombre original del autor.
He actualizado tu nombre de usuario de Git, pero las confirmaciones antiguas siguen mostrando el nombre anterior.
Los metadatos de la confirmación se incorporan al historial de Git cuando creas la confirmación.
Cambiar user.name solo afecta a las confirmaciones futuras. Si necesitas cambiar los nombres de los autores en compromisos antiguos, tendrás que reescribir el historial utilizando git rebase --interactive or git filter-repo. Esto es avanzado, arriesgado en ramas compartidas y, por lo general, no vale la pena.
Sigo mezclando identidades cuando cambio de proyecto.
Usa includeIf para cambiar automáticamente de identidad en función de la ubicación del repositorio.
Añadir esto a ~/.gitconfig:
[includeIf "gitdir:~/company/"]
path = ~/.gitconfig-company
[includeIf "gitdir:~/personal/"]
path = ~/.gitconfig-personal
A continuación, crea ~/.gitconfig-company con tu identidad laboral y ~/.gitconfig-personal con tu identidad personal. Git selecciona automáticamente la correcta en función de la ubicación del repositorio, por lo que ya no habrá más confirmaciones accidentales con el nombre incorrecto.
Conclusión
En conclusión, configurar correctamente tu nombre de usuario de Git mantiene limpio tu historial de confirmaciones y facilita la colaboración.
Cuando cada confirmación muestra el nombre correcto del autor, tu equipo puede realizar un seguimiento de quién ha realizado los cambios. Las revisiones de código se realizan más rápidamente, las anotaciones de responsabilidad tienen sentido y el historial del proyecto sigue siendo legible. Esto cobra mayor importancia a medida que los proyectos crecen y más personas contribuyen.
Si cambias entre proyectos laborales y personales, o utilizas nombres diferentes para distintos clientes, no es necesario que cambies manualmente las configuraciones cada vez. Configúralo una vez con las modificaciones locales o includeIf, y Git elegirá la opción correcta cada vez.
Si estás listo para ir más allá de lo básico y eliminar todas las dudas sobre Git y GitHub, estos recursos de DataCamp son tu mejor opción:
Preguntas frecuentes
¿Cuál es la diferencia entre el nombre de usuario de Git y el nombre de usuario de GitHub?
Tu nombre de usuario de Git (user.name) es el que configuras localmente en tu configuración. Son solo metadatos que Git estampa en las confirmaciones. Tu nombre de usuario de GitHub es el nombre de tu cuenta que aparece en direcciones URL como github.com/your-handle. Son sistemas completamente independientes y no tienen por qué coincidir. GitHub utiliza tu dirección de correo electrónico para vincular las confirmaciones a tu cuenta, no el nombre de usuario.
¿Cómo puedo comprobar qué nombre de usuario de Git estás utilizando actualmente?
Ejecuta « git config user.name » dentro de un repositorio para ver el nombre de usuario activo que Git utilizará para tu próxima confirmación. Si has establecido una sustitución local, verás eso en lugar de tu valor predeterminado global. Utiliza git config --list --show-originpara ver exactamente qué archivo de configuración está estableciendo el valor.
¿Puedes usar diferentes nombres de usuario de Git para diferentes proyectos?
Sí, y deberías hacerlo si estás trabajando tanto en proyectos personales como laborales. Configura tu nombre personal de forma global con git config --global user.name "Your Name" y, a continuación, sustitúyelo en repositorios específicos con git config user.name "Work Name". Para una mejor automatización, utiliza includeIf en tu ~/.gitconfig para cambiar automáticamente de identidad en función de la ubicación de la carpeta.
¿Por qué tus antiguos commits siguen mostrando el nombre incorrecto después de haber actualizado tu nombre de usuario de Git?
Los metadatos de la confirmación se incorporan al historial de Git cuando creas la confirmación. Cambiar user.name solo afecta a las confirmaciones futuras. Las confirmaciones antiguas conservan el nombre del autor original de forma permanente. Tendrías que reescribir el historial con git rebase --interactive o git filter-repo para cambiar los nombres antiguos, lo cual es arriesgado en ramas compartidas y normalmente no merece la pena.
¿Cómo evito realizar commits accidentalmente con la identidad equivocada al cambiar entre proyectos laborales y personales?
Configura includeIf en tu ~/.gitconfig para utilizar automáticamente diferentes identidades en función de la ubicación del repositorio. Crea archivos de configuración separados para el trabajo y para uso personal, y Git seleccionará la identidad adecuada en función de la ruta de la carpeta del repositorio. De esta forma, nunca tendrás que cambiar manualmente las configuraciones ni preocuparte por el nombre con el que estás realizando la confirmación.
