Esto es git [episodio 1]: conceptos básicos parte 3

28 de junio de 2016
3 min. de lectura

Continuamos con el desarrollo de la serie “Esto es Git” en la que describimos los conceptos básicos, a nuestro criterio más importantes, del manejo de versiones usando Git.

En el capítulo anterior, @rikycg (Ricardo Caicedo) hizo mención del archivo .gitignore, conceptos como add (mencionado en capítulos anteriores también), checkout, stash y tags.

En esta entrega vamos a echar un vistazo al concepto de repositorio remoto.

Repositorio remoto

En la teoría, al usar un sistema de versionamiento en nuestra máquina local, estamos cumpliendo con la tarea de organizar nuestro avance e historia de desarrollo. Pero ¿qué pasaría si nuestra máquina sufre algún daño y el sistema de archivos se pierde?

Este y otro sinfín de problemas se resuelven teniendo un repositorio remoto, en un servidor, en el cual se mantiene la copia “original” de nuestro desarrollo y convierte los archivos de nuestra máquina en una copia temporal para hacer modificaciones y posteriormente actualizar el repositorio remoto.

Un Repositorio remoto de Git puede estar alojado en servidores propios o se pueden usar servicios de administración de repositorios como Github, Bitbucket o Gitlab para alojar nuestros proyectos sin necesidad de contar con un servidor propio para ello.

Usar un administrador de repositorios como los mencionados anteriormente nos da además una serie de herramientas para revisión de código, manejo de incidencias, wikies, code snippets, integración con herramientas de seguimiento a proyectos e integración continua.

Asociar un repositorio local a uno remoto

Particularmente, para asociar un repositorio local (creado con el comando git init) a un repositorio remoto, se debe ejecutar el siguiente comando:

git remote add [nombrecorto] [url]

Con esto le estamos diciendo a nuestro repositorio local de Git que agregue una referencia a un repositorio remoto que se llama nombrecorto alojado en la URL especificada. Por defecto, el nombre usado para los repositorios remotos es origin:

git remote add origin https://myrepos.example.com/repo1

En este momento, podemos actualizar nuestro repositorio local con la información contenida en el repositorio remoto.

Ver información de remotos actuales 

Para poder saber si nuestro repositorio local tiene asociaciones con repositorios remotos, ejecutamos el comando git remote lo que nos dará un listado de los nombres de los remotos que tenemos asociados:

Si queremos obtener más información acerca de los remotos asociados, ejecutamos el comando git remote -v lo que dará como resultado un listado con más información acerca de los remotos asociados:

Si queremos obtener información acerca de uno de los remotos, ejecutamos el comando git remote show [nombre-remoto] lo que nos dará una información complementaria:

$ git remote show origin

* remote origin

Fetch URL: https://myrepos.example.com/repo1

Push URL: https://myrepos.example.com/repo1

HEAD branch: master

Remote branches:

master tracked

Local branch configured for 'git pull':

master merges with remote master

Local ref configured for 'git push':

master pushes to master (up to date)

Actualizar nuestro repositorio local con los cambios del remoto

Para actualizar nuestro repositorio local con la información del servidor remoto, usamos los comandos git fetch [nombre-remoto] o git pull [nombre-remoto] así:

git fetch origin o git pull origin

El comando git fetch origin actualizará el repositorio local con los cambios que se tienen en el repositorio remoto. Es importante mencionar que este comando NO modifica los archivos en el working copy, es decir, sólo actualiza el repositorio local sin tocar los archivos del sistema de archivos del sistema operativo sobre los que estamos trabajando. Para que estos cambios se hagan efectivos sobre nuestros archivos en el working copy, debemos ejecutar el comando git merge.

El comando git pull origin tiene el mismo efecto que git fetch origin, pero adicionalmente ejecuta el comando git merge. Esto quiere decir, que los cambios SÍ son aplicados al working copy.

Actualizar repositorio remoto con nuestros cambios

Después de haber realizado cambios en nuestros archivos y haber seguido los pasos mencionados en los capítulos anteriores (git add y git commit), tenemos que actualizar el repositorio remoto con nuestros cambios. Para esto usamos el comando git push [nombre-remote] [nombre-rama] así:

git push origin master

Con este comando le estamos pidiendo a Git que empuje los cambios acumulados en los commits hechos hasta el momento, al repositorio remoto llamado origin dentro de la ramamaster. También es importante notar que debemos tener permiso de escritura en el servidor de Git (o permisos para realizar push si usamos un administrador de repositorios como los mencionados antes).

Si alguien más ha actualizado el repositorio remoto, entre el tiempo que nosotros nos actualizamos y el momento en el que hacemos push, este comando será rechazado y tendremos que actualizar nuestro repositorio local nuevamente (como se habrán imaginado, por medio de un git fetch y git merge) antes de poder ejecutar un push.

Eliminar la referencia a un repositorio remoto

Si queremos que nuestro repositorio local deje de hacer referencia a un repositorio remoto específico, debemos ejecutar el comando git remote rm [nombre-remoto] así:

git remote rm origin

Esto ha sido todo por el episodio actual. Hemos abordado algunos temas básicos con respecto a los repositorios remotos. En el siguiente capítulo tendremos el manejo de ramas en Git y algo de merge entre ellas.

Te puede interesar

Otros artículos de Desarrollo de software

Suscríbete