Git verificar si repositorio remoto tiene cambios (Git pull,fetch y log)
¿Cómo comparar una rama local de git con su rama remota?
-------------------------------------------
Para obtener la lista de ramas disponible
Sintaxis: git branch -a
-------------------------------------------
Esto mostrará todas las diferencias entre las dos ramas:
Sintaxis: git diff <remote-branch> <local-branch>
ejemplo: git diff origin/modificaciones..modificaciones
-------------------------------------------
Si desea ver la diferencia ya que solo cambiaron los nombres de los archivos, utilice:
Sintaxis: git diff --name-status <remote-branch> <local-branch>,
ejemplo: git diff --name-status origin/modificaciones modificaciones
-------------------------------------------
git diff --stat --color modificaciones..origin/modificaciones
-------------------------------------------
Si está en una rama determinada y desea compararla con una rama aguas arriba que está rastreando, use
git diff @{upstream}
-------------------------------------------
La manera fácil:
git fetch
git log -p HEAD..FETCH_HEAD
Entonces git log se usa para comparar su rama actual con la que acaba de obtener.
(La opción -p (generar parche) es lo que muestra las diferencias .)
-------------------------------------------
esto buscará todo desde el control remoto, por lo que cuando verifique la diferencia,
comparará la diferencia con la rama remota.
#To update your local.
git fetch --all
-------------------------------------------
git branch -a
git fetch origin
git log -p modificaciones..origin/modificaciones
o compara con origin y otra rama
git log -p main..origin/modificaciones
... y luego, si está contento con eso, puede fusionarse o cambiar de base a origin/master.
-------------------------------------------
Sabado 10 de Julio 2021
git diff origin/modificaciones..modificaciones
git diff --stat --color modificaciones..origin/modificaciones
los archivos que están preparados tienen una A y los modificados una M
Para traer los cambios que se han hecho en el repositorio remoto al repositorio local tenemos 2 comandos:
git pull y git fetch
Git Pull
Trae los ultimos cambios del repositorio remoto al repositorio local. y este se une automaticamente a la rama principal. NO es necesario usar otro comando como git fetch.
Git fetch
Trae los ultimos cambios del repositorio remoto al repositorio local pero los mantiene separado o oculto, despues tenemos que hacer un git merge (que sirve para fusionar ramas).
Git fetch Tan sólo recupera la información del repositorio remoto y la ubica en una rama oculta de tu repositorio local, por lo que no la fusionará automáticamente con tu repositorio local. En este caso tenemos que saber que por cada repositorio remoto que tengamos configurado también tendremos una rama oculta de este.
Cuando ejecutamos git fetch se descargaran en nuestro local todas la informacion de commit,los archivos y las referencias de las ramas que se han modificado en el servidor remoto, pero no lo tiene visible lo tiene aislado hasta que desidamos hacer un pull o un merge.
Tal vez pull sea un comando "demasiado automático". git fetch es una alternativa más controlada, ya que al traerse los cambios del repositorio remoto no los aplica directamente sobre nuestro directorio de trabajo, sino que espera que nosotros lo hagamos manualmente.
Despues de un git fetch es conveniente hacer un diff, comparando las ramas de trabajo local con la del repositorio remoto.
Finalmente, si estamos de acuerdo con los cambios, ejecutaremos un merge.
Caso practico:
→ Si creamos una rama en el servidor remoto , y no lo tenemos en el repositorio local el comando git fetch lo descarga en nuestro local pero todavia no lo muestra lo mantiene oculto o separado.
→ Cuando hacemos un git branch para ver que ramas tenemos no nos muestra todavia la rama que hemos descargado con el comando git fetch del repositorio remoto.
→ Para ver la rama oculta devemos usar el comando git branch -r
→ Para ver toda la informacion que descargo git fetch y que se mantiene oculta podemos usar el comando git log , recuerda con el comando git branch -r solo vemos las ramas pero no los archivos ni los commis.
→ Una vez que terminamos de ver los cambios salimos con la tecla Q.