Este blog se creó a partir de mi necesidad de tener más ordenadas las diferentes configuraciones de los servicios de control de versiones. Yo utilizo Gitlab para mi trabajo, Github para proyectos propios que quiero compartir, y Gogs (que inició como prueba pero terminó siendo un lugar donde guardo configuraciones y backup de notas privadas junto con un familiar).
A lo que voy, necesito tenerlo separado, porque sino es un lío, y si hay que realizar una modificación, si no se sabe bien qué se está tocando, se puede ocasionar un desastre 😅.
Aquí tienes algunos pasos que puedes seguir, porque estuve investigando y es bastante sencillo.
Importante saber: Git utiliza un archivo de configuración global (~/.gitconfig
) donde puedes establecer parámetros que afectarán a todos los repositorios. Sin embargo, para manejar diferentes servicios, puedes establecer configuraciones específicas para cada repositorio. Esto incluye las credenciales (usuario y correo electrónico) y el remoto.
Un servicio
Configuración global
Normalmente, si tienes un solo servicio, lo mejor es tener configuraciones globales, puedes establecer tu nombre y correo electrónico en tu archivo global .gitconfig
. Por ejemplo:
git config --global user.name "Tu Nombre"
git config --global user.email "tu.email@ejemplo.com"
Y se usará esa configuración para todos los repositorios que crees. Es más fácil.
Más de un servicio
Opción 1: Configuración específica para cada repositorio
Puedes, aunque es más manual, para cada repositorio, establecer las configuraciones específicas que necesites.
Navega a la carpeta del repositorio y ejecuta:
cd /ruta/a/tu/repositorio
git config user.name "Tu Nombre para Gogs"
git config user.email "tu.email@gogs.com"
Haz lo mismo para los repositorios de GitHub y GitLab cuando trabajes en ellos.
Lo tienes que hacer una vez, cuando creas el repositorio y vas a subir un cambio a remoto, y luego para los demás tomará la configuración que hayas puesto.
Importante: Configura los remotos
Cuando añadas un nuevo remoto, asegúrate de que apunte al servidor correcto. Por ejemplo, para un repositorio de Gogs, puedes añadir el remoto así:
git remote add origin https://gogs.ejemplo.com/usuario/repositorio.git
Para GitHub o GitLab, haz lo mismo:
git remote add origin https://github.com/usuario/repositorio.git
Así cuando hagas git push origin rama
se subirá al repositorio referenciado en el git remote
y con las configuración hecha a nivel repositorio.
Opción 2: Uso de SSH (opcional pero recomendado)
Si usas SSH para autenticarte, puedes crear diferentes claves SSH para cada servicio y configurar el archivo ~/.ssh/config
para gestionar las conexiones de forma más sencilla.
- Generar claves SSH (si no tienes):
ssh-keygen -t rsa -b 4096 -C "tu.email@ejemplo.com"
- Agregar las claves al agente SSH:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa_gogs
ssh-add ~/.ssh/id_rsa_github
ssh-add ~/.ssh/id_rsa_gitlab
-
Configurar el archivo
~/.ssh/config
:
# Gogs
Host gogs
HostName gogs.ejemplo.com
User git
IdentityFile ~/.ssh/id_rsa_gogs
# GitHub
Host github
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_github
# GitLab
Host gitlab
HostName gitlab.com
User git
IdentityFile ~/.ssh/id_rsa_gitlab
- Usar los remotos con las configuraciones de SSH:
En lugar de usar las URL HTTPS, puedes usar las configuraciones de SSH:
git remote add origin gogs:usuario/repositorio.git
git remote add origin github:usuario/repositorio.git
git remote add origin gitlab:usuario/repositorio.git
Con estos pasos, deberías poder gestionar tus repositorios en Gogs, GitHub y GitLab desde la misma máquina sin que se interfieran entre sí. Asegúrate de siempre estar en el directorio correcto antes de ejecutar comandos de Git y de haber configurado adecuadamente las credenciales y remotos para cada proyecto.
Si hay algún comando que esté incorrecto, o quieres aportar en los comentarios, eres bienvenido :)
Top comments (0)