Source Code

Gestionar repositorios remotos con Git


Tempo de lectura: 3 minutos

Tenemos una serie de comandos git para recuperar o actualizar el repositorio remoto, independientemente de los cambios locales.


Contenido

git fetchgit fetch es el comando que hace que tu repositorio Git local se actualice con la última información que hay en el repositorio remoto, pero no hace ninguna transferencia de archivos a tu espacio de trabajo local. Descarga commits y archivos. Es lo que se utiliza para ver qué cambios se han producido en el repositorio remoto, pero no te obliga a fusionarlos con tu trabajo local. Los cambios están disponibles.
git pullgit pull es el comando que comprueba si hay cambios en el repositorio remoto y, en caso de que los haya, se trae esos archivos a tu repositorio local y actualiza tu espacio de trabajo, es decir, los fusiona con lo qu tienes localmente. Los comandos git pull y git fetch pueden confundirse, aunque tienen efectos diferentes. Ambos descargan los cambios en el repositorio remoto pero git pull actualiza el repositorio local inmediatamente.
Flujo de cambios comparados entre fetch y pull

Ampliación
git remoteEste comando permite gestionar las conexiones a los repositorios remotos. Básicamente asigna nombres a las URLs de los repositorios de manera que es más sencillo apuntar a un repositorio remoto dado.
git remote add ph https://github.com/xavipena/photoadict
Hay una conexión creada por defecto la primera vez que se clona un repositorio y es origin que hace referencia a la URL del repositorio clonado.
git mergeEste comando no es un comando remoto, pero entra en juego cuando utilizamos git pull, como se ha comentado.

Incorpora los cambios de los commits indicados de una rama, en la rama actual. Y se puede utilizar de forma independiente para fusionar cambios entre ramas locales.

git merge fusiona dos ramas en una y te permite guardar tus cambios con seguridad. Un caso general sería el que se reprsenta a continuación.
  A-->B-->C development
 /
D-->E-->F-->G master
git merge development fusiona los cambios de la rama development desde que se separó de master y los cambios se guardan en un nuevo commit.
  A-->B-->C development
 /         \
D-->E-->F-->G-->H master
Este comando se utiiza para subir contenido local a un repositorio remoto. Mientras que git fetch recupera commits de un repositorio remoto, git pull los envía al repositorio remoto y los fusiona, ojo!
git pushEste comando funciona únicamente si has clonado de un servidor en el que tienes permiso de escritura. Si tú y otra persona clonais a la vez, y él envía su información y luego envías tú la tuya, tu envío será rechazado. Tendrás que bajarte primero su trabajo e incorporarlo en el tuyo para que se te permita hacer un envío.
git push origin master
ReferenciasDocumentación de Git
https://docs.github.com
Scott Chacon
https://git-scm.com
Trabajar con remotos
https://git-scm.com
Xavier es un desarrollador senior full stack y opera desde la ciudad mediterránea de Barcelona. Le encantan las tecnologías de software y está convencido que el desarrollo de software es un proceso colaborativo y abierto.
Y es un apasionado de la astronomía y de la fotografía. Lo puedes encontrar en:
Comparte este post en


Source Code (C) Xavier Peña, 2023