Usar múltiples usuarios con Git
Camilo Martinez
Posted on October 19, 2022
Idiomas: [🇺🇸] English - [🇪🇸] Español
Si estás trabajando con múltiples usuarios de Git, por ejemplo, con uno para proyectos personales y otro para los proyectos del trabajo.
Entonces no es buena idea definir un usuario global porque todos los proyectos van a usar el mismo y puede ser muy fácil terminar haciendo un commit
con el usuario incorrecto.
Amend
Si ese es tu caso, no te preocupes. No es realmente un problema porque se puede enmendar (ammend) con este comando.
git commit --author="First Last <first.last@company.org>" --amend --no-edit
Pero seamos sinceros, ¿quién quiere estar ejecutando este comando frecuentemente?. Seguramente casi nadie. Es una de esas cosas que solo queremos tener en cuenta en casos de emergencia.
Configuración de Git
Lo primero que me gusta hacer es cambiar el editor por defecto de git de vim
a VSCode
. Aunque es algo opcional, si te sientes bien editando directamente desde la terminal.
git config --global core.editor 'code --wait'
Y lo otro es crear dos alias, para acceder y editar fácilmente las configuraciones.
alias gcg="git config --edit --global"
alias gcl="git config --edit --local"
La diferencia entre ellas es que global
aplica para todos los proyectos de Git en tu máquina y local
solo aplica al proyecto en la ruta actual.
Ahora vamos a aprender como usar diferentes usuarios en cada proyecto.
Remover el Global 👌
Este paso es recomendado, pero también es opcional. En mi caso prefiero no tener un usuario por defecto para todos los proyectos.
Vamos a abrir la configuración global
utilizando el alias gcg
o con el comando git config --edit --global
y eliminar todas las configuraciones que tengan que ver con [credential]
y [user]
.
La complicada 👎
Una forma es que después de crear o clonar un repositorio, definas manualmente la configuración con estos comandos.
git config user.name "<user>"
git config user.email "<user@mail.com>"
git config credential.username "<user>"
Puede ser buena idea si no tienes una ruta específica para crear o clonar tus proyectos, pero... toma muchísimo tiempo y es muy fácil de olvidar, créeme, además vas a necesitar repetir lo mismo con cada repositorio que clones.
La recomendada 👍
Lo primero es definir una ruta específica para diferenciar nuestros proyectos y crear un archivo .gitconfig
para cada perfil de usuario, tantos como sean necesarios.
~
├── .gitconfig <-- global
└── Developer/
├── personal/
│ ├── proyecto_1/
│ ├── proyecto_2/
│ ├── proyecto_#/
│ └── .gitconfig <-- personal
└── empresa/
├── proyecto_1/
├── proyecto_2/
├── proyecto_#/
└── .gitconfig <-- empresa
Personal
# ~/Developer/personal/.gitconfig
[credential]
username = <usuario-github>
[user]
name = <usuario-github>
email = <usuario-github>@users.noreply.github.com
Empresa
# ~/Developer/company/.gitconfig
[credential]
username = <user>
[user]
name = <Nombre Apellido>
email = <usuario>@empresa.org
Global
Ahora vamos a abrir la configuración global
usando el alias gcg
o el comando git config --edit --global
.
# ~/.gitconfig
[includeIf "gitdir/i:~/Developer/personal/"]
path = ~/Developer/personal/.gitconfig
[includeIf "gitdir/i:~/Developer/empresa/"]
path = ~/Developer/empresa/.gitconfig
Así, tomará la configuración del usuario de cada "perfil" dependiendo de la ruta y podrás crear o clonar proyectos dentro de cada uno de ellos sin tener que estar lidiando con configuraciones manuales y evitando tener que usar el comando amend
para corregir errores.
Agradecimientos especiales a feregri_no y ChrisFt25 de Twitter por enseñarme estos trucos.
That’s All Folks!
Happy Coding 🖖
Posted on October 19, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.