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 push
desde 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 --help
para 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 --force
es de hecho otra forma válida de forzar el empuje, y empujará las ramas tan bien como git push origin master --force
con 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 --force
funciona bien en estos días, FWIW ...
git push --force-with-lease
funciona 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 -force
más cuidado .