Para poder subir cambios o descargar repositorios de nuestro servidor de control de versiones con Git (No host GitHub) debemos primero haber creador el repositorio en nuestro servidor, para ello checa primero esa nota.
Una vez creado el repositorio en nuestro servidor en nuestra maquina local podrémos hacer las siguientes procedimientos:
Imaginemos que vamos a crear un nuevo proyecto llamado new_project, por lo tanto creamos la carpeta:
Copiar código
mkdir new_project; cd new_project
Una vez dentro de la carpeta de nuestro nuevo proyecto debemos inicializar un repositorio Git:
Copiar código
# iniciar un entorno de git
git init .
Para vincular la carpeta del proyecto a nuestro servidor debemos ejecutar los siguientes comandos:
Copiar código
# vincular el proyecto a repositorio.
git remote add origin nombre_usuario@ip_servidor_o_dns:/ruta/carpeta/repositorio/en/servidor
# ejemplo: git remote add origin dave@192.162.1.18:/home/gitserver/repos/new_project
El comando git remote add origin vincula nuestro proyecto local a un repositorio remoto. El alias origin se usa para referirse a este repositorio en comandos futuros como git push o git pull.
El comando anterior debe funcionar tanto en redes locales como externas. Para conexiones externas, asegúrate de abrir y redirigir el puerto SSH (22) en tu router hacia la IP del servidor. Si tienes una IP dinámica, considera usar servicios como DuckDNS.
Cabe mencionar que no es recomendable aperturar el puerto 22 de tu tu router ISP, pero en caso de que así lo desees esos son los pasos a seguir, lo más recomendable es usar una VPN como wireguard y ya sea que tu hagas la instalación o compres un router que sea compatible con algunas VPN.
En caso de que hayas cambiado el puerto por defecto de escucha que es el 22 debes cambiar el comando de vinculación a tu proyecto y especificar el puerto, el comando puede ser aplicado tanto para redes locales y externas.
Copiar código
# comando para puerto de escucha modificado
git remote add origin ssh://nombre_usuario@ip_publica_o_dns:puerto/ruta/carpeta/repositorio/en/servidor
# ejemplo: ssh://dave@ip-casa-dns-sample.duckddns.org:2200/home/gitserver/repos/new_project
Una vez hecho todos los pasos anterior ya puedes continuar con tu proyecto sin importar en el lenguaje de programación en que vayas a trabajar, guardar cambios con git add ., guardar cambios git commit -m "mensaje relacionado a los cambios hechos" y subirlos a tu servidor git push -u origin master.
Adicional a lo anterior, tambien es importante que conozcas que puedes vincular un proyecto a más de un servidor en caso de que quieras redundancias para backups, para hacerlo el proceso es similar al anterior, ejemplo del comando:
Copiar código
git remote add server_1 dave1@192.168.16.10:/home/servergit1/new_project
git remote add server_2 dave2@192.168.16.11:/home/servergit2/new_project
Para hacer el envio de cambios es importante que hagas push por cada servidor, en este caso serían dos push, ejemplo:
Copiar código
# Para enviar a servidor_1
git push server_1 master
# Para enviar a servidor_2
git push server_2 master
Si deseas desvincular el repositorio remoto configurado en tu máquina local, el procedimiento es muy sencillo. Primero, verifica las conexiones actuales de tu repositorio mediante el siguiente comando:
Copiar código
# Listar los remotos configurados en el repositorio local
git remote -v
Este comando muestra las URL de los remotos configurados para operaciones de fetch (descarga) y push (envío). La salida será similar a la siguiente:
$ git remote -v
origin dave@dns_server_git:/home/gitserver/repo/new_project (fetch)
origin dave@dns_server_git:/home/gitserver/repo/new_project (push)
Alternativamente, puedes usar el comando git remote show origin
para obtener información más
detallada
sobre la configuración del remoto llamado origin
, incluyendo su URL y el estado actual de las
conexiones.
Una vez que hayas identificado el remoto que deseas eliminar, puedes desvincularlo usando el siguiente comando:
Copiar código
# Eliminar un remoto llamado 'origin'
git remote remove origin
Después de ejecutar este comando, el repositorio local ya no estará vinculado al remoto eliminado.
No podrás realizar operaciones como git push
o git pull
hasta que configures una nueva
vinculación.
Sin embargo, los cambios realizados en tu repositorio local permanecerán intactos.
Si tienes múltiples remotos configurados, como se menciona en la sección "Vincular", asegúrate de especificar correctamente el nombre del remoto que deseas eliminar. Por ejemplo:
Copiar código
# Eliminar un remoto llamado 'server_1'
git remote remove server_1
Clonar un repositorio es el proceso de crear una copia local de un repositorio remoto. Este procedimiento es sencillo, ya sea que trabajes en una red local o externa, siempre y cuando hayas realizado las configuraciones necesarias, como la apertura de puertos o la configuración de claves SSH.
Para clonar un repositorio utilizando el puerto SSH predeterminado (22), usa el siguiente comando:
Copiar código
# Clonar repositorio con puerto predeterminado (22)
git clone usuario@direccion_ip_servidor_o_dns:/ruta/carpeta/repositorio/en/servidor
# Ejemplo: git clone dave@192.168.11.31:/home/gitserver/repos/new_project
Si tu servidor está configurado para usar un puerto SSH diferente, debes especificarlo en el comando. A continuación, te mostramos el formato y un ejemplo:
Copiar código
# Clonar repositorio con puerto modificado
git clone ssh://usuario@direccion_ip_servidor_o_dns:puerto/ruta/carpeta/repositorio/en/servidor
# Ejemplo: git clone ssh://dave@192.168.11.31:2200/home/gitserver/repos/new_project
En caso de que no tengas una llave SSH te solicitará autenticación, solo ingresa la contraseña y podrás clonar el repositorio, puedes consultar mi nota de como crear una llave SSH.