¿Trabajas con varias cuentas de Git en diferentes proveedores? ¿Quizás GitHub, Azure DevOps, Bitbucket u otros?
Si es así seguro que te ha pasado algo muy molesto: haces los commits con el usuario erróneo. Esto sucede porque normalmente el nombre y el mail con el que hacemos nuestros commits se establece de forma global (al instalar Git en el equipo por ejemplo) y se usa con todos los commit, esté donde esté el repositorio remoto.
Estos datos nada tienen que ver con la autenticación contra tu proveedor, así que aunque mi usuario en Azure DevOps fuese sergio@midominio.com, yo podría commitear como sergio@otrodominio.com
Vamos a verlo con un ejemplo
Commiteando con el usuario equivocado
Voy a clonarme un repositorio que tengo en GitHub:
git
clone https://github.com/snavarropino/CacheSleeve.git
Una vez hecho esto, voy a setear mi configuración de Git, eligiendo un usuario erróneo:
git config --global user.email "sergio@wrongdomain.com"
Y seguidamente haré un commit y lo subiré al repo
Si revisamos la historia, tanto en local como en remotlo, vamos a ver que el commit queda "atado" a ese "wrong user". ¿Un poco loco verdad?
Aquí he forzado el error, pero lo que suele pasar es que estableces la configuración para commitear por ejemplo en Azure Devops
(trabajo), luego te clonas un repo de GitHub, y al commitear va la info
del trabajo en vez de la de tu cuenta personal en GitHub...
¡Me pasa constantemente! Vamos a solucionarlo.
Forzando que cada repo tenga configuración local
Desde git versión 2.8 (ha llovido ya) tenemos la opción de forzar que deban configurarse usuario y email en cada repo, de modo local a este.
Esto lo conseguimos así
git config --global --add user.useConfigOnly true
Una vez hecho esto, si en un repositorio en el que no hemos configurado localmente hacemos un commit, obtendremos un error. Ya no se usará más la configuración global.
Ahora tendremos que configurar el nombre y el email apropiado para cada repo, es más tedioso pero evitamos errores. ¿Cómo lo hacemos?
git config --local
user.email sergio.navarropino@gmail.com
git config --local user.name "Sergio Navarro Pino"
Espero que os resulte útil y que evitéis esos molestos errores
Saludos!
PD: Jose María Flores Zazo ya escribió sobre este tema, el lo resuelve con GitKraken, interesante!
https://jmfloreszazo.com/git-mejores-practicas-informacion-del-usuario
No hay comentarios:
Publicar un comentario