He configurado un repositorio "principal" remoto no descubierto y lo he clonado en mi computadora. Hice algunos cambios locales, actualicé mi repositorio local y devolví los cambios a mi repositorio remoto. Las cosas estaban bien hasta ese punto.
Ahora, tuve que cambiar algo en el repositorio remoto. Luego cambié algo en mi repositorio local. Me di cuenta de que no era necesario el cambio al repositorio remoto. Así que intenté git pushdesde mi repositorio local a mi repositorio remoto, pero recibí un error como:
Para evitar que pierda el historial, se rechazaron las actualizaciones que no son de avance rápido. Combine los cambios remotos antes de presionar nuevamente. Consulte la sección 'Nota sobre avance rápido'
git push --helppara obtener más detalles.
Pensé que probablemente un
git push --force
obligaría a mi copia local a empujar los cambios a la remota y la haría igual. Obliga a la actualización , pero cuando vuelvo al repositorio remoto y realizo una confirmación, noto que los archivos contienen cambios desactualizados (los que el repositorio remoto principal tenía anteriormente).
Como mencioné en los comentarios a una de las respuestas :
[Intenté forzarlo, pero cuando vuelvo al servidor maestro para guardar los cambios, me quedo obsoleto. Por lo tanto, cuando confirmo los repositorios no son lo mismo. Y cuando trato de usar git push nuevamente, aparece el mismo error.
¿Cómo puedo solucionar este problema?
git push --forcees de hecho otra forma válida de forzar el empuje, y empujará las ramas tan bien como git push origin master --forcecon el valor predeterminado de Git push.default config settings, aunque las ramas que se empujan específicamente difieren entre las versiones de Git anteriores a 2.0 frente a 2.0.
git push --forcefunciona bien en estos días, FWIW ...
git push --force-with-leasefunciona aún mejor :), se negará a actualizar una rama a menos que sea el estado que espera. (vea developer.atlassian.com/blog/2015/04/force-with-lease )
git push -forcemás cuidado .