Cómo descartar cualquier cambio local realizado en un proyecto de desarrollo y cómo actualizarlo con los cambios del repositorio remoto GitHub.

1º Comprobamos que tenemos conectado el repositorio local con el remoto

  • Muestra los repositorios remotos vinculados al repositorio local (generalmente llamado origin).
  • Debe mostrar URL de fetch push (ej: https://github.com/usuario/repo.git).

Desde la carpeta del proyecto, ejecutamos el comando:

En caso de no aparecer el origin, hay que vincular el repositorio local al remoto (hay que conocer la URL), con el comando:

2º Descartar cambios locales no guardados

  • Descarta todos los cambios locales no guardados (modificaciones o eliminaciones) en archivos rastreados por Git.
  • No afecta a archivos nuevos no añadidos (untracked).

¿Cuándo usarlo?

  • Cuando se han modificado archivos pero no quieremos guardar esos cambios y preferimos recuperar la versión del repositorio.

3º Eliminar archivos y directorios no rastreados

Elimina archivos y directorios no rastreados (nuevos archivos que no están en el repositorio).

  • -f (force): fuerza la eliminación.
  • -d: borra directorios no vacíos.

¿Cuándo usarlo?

  • Cuando hay archivos generados localmente (como .exe.log.json, etc.) que no forman parte del repositorio y queremos eliminarlos.

⚠️ Precaución:

  • Este comando no se puede deshacer, ya que borra archivos permanentemente.

4º Asegurarnos de que estamos en la rama «main» (o la que estemos usando)

Nos aseguramos de que estamos en la rama main (o la rama que queramos sincronizar).

¿Cuándo usarlo?

  • Si estábamos en otra rama y necesitamos volver a la rama main para actualizar con el remoto (o cualquier otra rama que deseemos).

Si estamos en la rama «main», nos devolverá un mensaje como este:

Already on ‘main’
Your branch is behind ‘origin/main’ by 3 commits, and can be fast-forwarded.
(use «git pull» to update your local branch)

5º Descargar los últimos cambios del repositorio remoto

  • Descarga los últimos cambios del repositorio remoto (origin/mainpero no los aplica todavía.
  • Actualiza las referencias internas de Git (como origin/main).

¿Cuándo usarlo?

  • Siempre antes de un git pull para asegurarnos de tener la última versión del remoto.

6º Combinar los cambios descargados del remoto con la rama local

  • Combina (fetch + merge) los cambios descargados del remoto (origin/main) con tu rama local.
  • Si no hay conflictos, actualiza tu código local automáticamente.

¿Cuándo usarlo?

  • Cuando queremos sincronizar la rama local con los últimos cambios del remoto.

Resumen del flujo completo

  1. Comprobar conexión con repositorio remoto → remote -v
  2. Eliminar cambios locales no guardados → git checkout — .
  3. Borrar archivos no rastreados → git clean -fd
  4. Cambiar a la rama principal → git checkout main
  5. Descargar cambios remotos → git fetch origin main
  6. Fusionar cambios remotos con la versión local → git pull origin main

Alternativa más agresiva (si hay problemas con git pull)

Si queremos forzar que el repositorio local sea idéntico al remoto (sin merge):

Y el siguiente comando, con precaución, pues eliminará todo lo local sin confirmación: