Configurando múltiples usuarios de Git: Guía práctica para desarrolladores

Cambiar manualmente de usuario en cada repositorio puede convertirse en un proceso tedioso y propenso a errores. Hoy queremos compartir contigo este artículo que te guiará sobre cómo configurar múltiples usuarios de Git de forma eficiente. Con estos consejos, optimizarás tu flujo de trabajo y podrás asegurarte de que tus commits se realicen bajo la cuenta correcta, según el host y el proyecto. ¡Sigue leyendo para descubrir cómo simplificar esta tarea y mejorar tu productividad!
Comencemos Paso a Paso:
Configurar el archivo
Primero, debes asociar claves SSH específicas a cada host. Edita o crea el archivo con:
nano ~/.ssh/config
Añade las siguientes configuraciones para diferentes plataformas y cuentas:
# GitHub personal
Host github-personal HostName github.com User git
IdentityFile ~/.ssh/id_rsa_personal
# GitHub para el proyecto "Manzana" Host github-proyecto-manzana
HostName github.com User git
IdentityFile ~/.ssh/id_rsa_manzana
# GitLab de la empresa "Tomate" Host gitlab-empresa-tomate
Explicación:
- Host github-personal y similares: Alias personalizados para cada cuenta, por lo general es el host asociado al proyecto o empresa en concreto (gitlab.empresatomate.com, github-proyectomanzana), sino sería por defecto el de la plataforma (github.com gitlab.com)
- HostName: El dominio real del servicio Git.
- IdentityFile: La clave SSH correspondiente a esa cuenta.
Si no tienes las claves SSH creadas y añadidas en GitHub o GitLab te explico brevemente cómo hacerlo:
Usa el siguiente comando especificando el identificador que quieres que tenga tu clave mediante el flag -C y el nombre y ubicación del archivo con el flag -f. Las claves deben estar en la carpeta .ssh
ssh-keygen -t ed25519 -C "[tu_email@example.com](mailto:tu_email@example.com)" -f ~/.ssh
/mi_clave_personal
Esto generará dos archivos, el que contiene la clave privada y otro con la clave pública (terminado en .pub). Tendrás que añadir esta clave pública a la plataforma que vas a usar (GitHub, GitLab).
Luego, asegúrate de proteger los permisos de la clave privada:
chmod 600 ~/.ssh/mi_clave_personal
Añade la clave SSH al agente
Primero, verifica si el agente SSH está en ejecución:
eval "$(ssh-agent -s)"
Luego, añade la clave privada al agente:
ssh-add ~/.ssh/mi_clave_personal
Si se te solicita la contraseña de la clave (si configuraste una), ingrésala.
Verifica que la clave esté cargada
Para comprobar que la clave fue añadida correctamente, usa:
ssh-add -l
Esto mostrará las claves actualmente cargadas en el agente.
Configurar múltiples usuarios en Git
Para que se use un usuario de git diferente según el proyecto, mi recomendación es crear una estructura de carpetas en las cuales estará basada la configuración de git. Luego asociar el contenido de cada una de estas carpetas con el usuario de git en el archivo .gitconfig. Con este usuario es con el que van a quedar los commits. Como usuario general se queda el que se va a usar en cualquier otro repositorio fuera de esta estructura de carpetas.
📂 home
├── 📂 proyectos-personales
│ ├── 📂 repositorio-1
│ ├── 📂 repositorio-2
│ ├── ...
│
│
├── 📂 proyectos-manzana
│ ├── 📂 repositorio-1
│ ├── 📂 repositorio-2
│ ├── ...
│
│
├── 📂 empresa-tomate
│ ├── 📂 repositorio-1
│ ├── 📂 repositorio-2
│ ├── ...
│
│
├──📄 .gitconfig-personal
├── 📄 .gitconfig-tomate
├── 📄 .gitconfig-manzana
Ahora, edita tu configuración global de Git:
git config --global --edit
Añade las siguientes reglas para definir usuarios específicos según la ubicación de los proyectos:
[user]
name = Usuario General email = usuario@general.com
[includeIf "gitdir:~/proyectos-personales/"] path = ~/.gitconfig-personal
[includeIf "gitdir:~/proyectos-manzana/"] path = ~/.gitconfig-manzana
Crear archivos de configuración específicos
Ahora, crea los archivos de configuración para cada usuario.
Para proyecto Personal ~/.gitconfig-personal
[user]
name = Usuario Personal
email = usuario.personal@email.com
Para el proyecto "Manzana" ( ~/.gitconfig-manzana ):
[user]
name = Usuario Manzana
email = usuario.manzana@empresa.com
Para la empresa "Tomate" ( ~/.gitconfig-tomate ):
[user]
name = Usuario Tomate
email = usuario.tomate@empresa.com
Clonar y trabajar con los repositorios
Al clonar un repositorio usando SSH, según la carpeta en donde se va a descargar debería hacerlo usando el usuario y claves adecuadas.
Verificar la configuración
Para asegurarte de que estás usando la configuración correcta en un proyecto, dentro de la carpeta del mismo puedes ejecutar:
git config user.name
git config user.email
Para comprobar qué clave SSH se está usando, ejecuta:
ssh -T git@github.com
ssh -T git@gitlab.com
Con esta configuración, podrás gestionar múltiples cuentas de Git sin la molestia de cambiar manualmente de usuario o clave SSH en cada repositorio. Simplemente define los alias necesarios en tu configuración y establece las configuraciones específicas para cada proyecto. De esta manera, podrás centrarte en lo que realmente importa: desarrollar y entregar código de calidad.
¡A trabajar sin complicaciones!
Si tienes alguna pregunta o necesitas más ayuda, no dudes en contactarnos en Digitalprojex.
¡Estamos aquí para ayudarte!