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.
- 2º Descartar cambios locales no guardados.
- 3º Eliminar archivos y directorios no rastreados.
- 4º Asegurarnos de que estamos en la rama «main» (o la que estemos usando).
- 5º Descargar los últimos cambios del repositorio remoto.
- 6º Combinar los cambios descargados del remoto con la rama local.
- Resumen del flujo completo.
- Alternativa más agresiva (si hay problemas con
git pull).
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
fetchy push (ej: https://github.com/usuario/repo.git).
Desde la carpeta del proyecto, ejecutamos el comando:
|
1 |
git remote -v |

En caso de no aparecer el origin, hay que vincular el repositorio local al remoto (hay que conocer la URL), con el comando:
|
1 |
git remote add origin https://github.com/usuario/URL.git |
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.
|
1 |
git checkout -- . |

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.
|
1 |
git clean -fd |

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).
|
1 |
git checkout main |

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/main) pero 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.
|
1 |
git fetch origin main |

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.
|
1 |
git pull origin main |

Resumen del flujo completo
- Comprobar conexión con repositorio remoto → remote -v
- Eliminar cambios locales no guardados → git checkout — .
- Borrar archivos no rastreados → git clean -fd
- Cambiar a la rama principal → git checkout main
- Descargar cambios remotos → git fetch origin main
- 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):
|
1 |
git fetch origin main |
Y el siguiente comando, con precaución, pues eliminará todo lo local sin confirmación:
|
1 |
git reset --hard origin/main |