Cómo descartar cualquier cambio realizado en un repositorio remoto GitHub y reemplazarlo por un repositorio local.
- Procedimiento para reemplazar repositorio remoto GitHub con repositorio local.
- Resumen del flujo completo.
- Situaciones alternativas.
⚠️ Advertencia
Este procedimiento eliminará permanentemente los cambios del repositorio remoto y lo reemplazará con la versión local. Usaremos este procedimiento solo cuando:
- Estemos seguros de que la versión local es la correcta.
- Queramos descartar TODOS los cambios remotos.
Procedimiento para reemplazar repositorio remoto GitHub con repositorio local
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/proyectoajpdsoft/Primer_Componente_Angular |
2º 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 local con 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)
3º Actualizar la referencia local del repositorio remoto
- Descarga los últimos cambios del remoto (sin fusionarlos).
¿Cuándo usarlo?
- Siempre antes de un git push para asegurarnos de tener la última versión.
|
1 |
git fetch origin main |

4º Forzar que el repositorio remoto coincida con la versión local
- Actualiza el repositorio remoto y lo sincroniza con el local.
¿Cuándo usarlo?
- Cuando queremos sincronizar la rama remota con los últimos cambios del local.
|
1 |
git push --force-with-lease origin main |
--force: sobrescribe el historial remoto con la rama local.--force-with-lease: solo fuerza el push si el remoto no ha cambiado desde tu último fetch (evita sobrescribir trabajo de otros).

Resumen del flujo completo
- Verificar conexión remota → git remote -v
- Cambiar a la rama objetivo → git checkout main
- Obtener referencia remota → git fetch origin main
- Sobrescribir remoto → git push –force-with-lease origin main
Situaciones alternativas
Si necesitamos sobrescribir una rama distinta a main
|
1 |
git push --force origin nombre-de-la-rama |
Si queremos eliminar archivos remotos que solo existen en el remoto
|
1 |
git push --force --prune origin main |
Si hay conflictos
Si preferimos mantener un historial limpio en lugar de forzar cambios, ejecutaremos, para fusionar cambios remotos:
|
1 |
git pull origin main |
Y para enviar los cambios de local a remoto (sin forzar):
|
1 |
git push origin main |