Digitalprojex logo

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

En Digital Projex, entendemos que muchos desarrolladores enfrentan el reto de gestionar diferentes cuentas de Git al trabajar en múltiples proyectos, ya sea una cuenta personal o una de trabajo.
múltiples usuarios de Git

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.

 

  1. 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!

 

 

Sobre DigitalProjex

DigitalProjex es una empresa dedicada al desarrollo e implementación de soluciones informáticas.

Saber más
Nuestro Equipo

Nuestro equipo está compuesto por profesionales especializados en Tecnologías de la Información.

Lo que ofrecemos

Desarrollo de soluciones útiles y eficientes que le permitan automatizar sus procesos y fomentar la innovación tecnológica en su empresa.

Algunos de nuestros clientes