Hace un par de días logré configurar un servidor con ip pública para poder utilizarlo como puerta de enlace, tipo router de compañía proveedora de Internet.
Todo iba bien hasta que tuve la necesidad de hacer un push des mi máquina conectada a ese "router" en mi proyecto que estoy desarrollando el cual lo tengo versionado con git.
Al tratar de hacer el push de mis cambios a la rama del servidor donde tengo corriendo gitosis, un servidor de git, simplemente no lo encontraba, y esque este servidor no se encuentra en el rango de mis ips, sino que a través de una VPN lograba verlo, pero, al cambiar mis configuraciones de red, había perdido la vista de ese servidor en su ip privada (la que esta en la vpn) solo logro verlo a través de la ip pública de forma transparente.
Entonces buscando un poco en Internet y en el man de git me encontré que con git push puedo utilizar varias opciones una de ellas es la que me ayudo a no estar cambiando mi configuración de red cada que quería empujar mis cambios al servidor.
La opción de git push que utilicé se llama --repo y la forma en lo lo utilicé la explico a continuación.
Anteriormente cuando hacia un commit a mi rama en particular tecleaba esto:
git push origin devel
o en su caso
git push origin master
Esto al estar ya configurado con mi servidor buscaba la ip privada del servidor y empujaba mis cambios, ahora al tener una conexión NAT no logro ver este servidor ya que mi servicio lo tengo configurado para que git salga por la ip pública cosa que no quiero cambiar porque tengo repositorios en la nube que quiero ver de forma transparente.
Bueno con la opción --repo= del comando git podemos definir a que repositorio queremos empujar los cambios, es decir incluyendo la ip o la ruta, ya que puede ser sobre el protocolo ssh, git, http, ftp... etc..
Entonces ahora cuando quiero empujar mis cambios pero hacia la ip publica de mi servidor gitosis basta con utilizar la opción --repo de la siguiente forma:
git push --repo=gitosis@IP_PUBLICA:proyecto.git
un ejemplo
git push --repo=gitosis@132.248.20.125:proyecto.git
Así es, eliminando el origin y el nombre de la rama y cambiando eso por la opción --repo= y la ruta de nuestro proyecto.
Dependiendo la rama en la que estemos se empujaran los cambios hacia esa rama.
Y bueno asi me ahorre estar buscando como meterle excepciones al ip-tables del servidor git o lo peor estar cambiando mi conexión cada que quiero realizar un push.
No hay comentarios:
Publicar un comentario