GitHub tiene una buena sección llamada " Manejo de errores " no de avance rápido " "
Este error puede ser un poco abrumador al principio, no temas.
En pocas palabras, git no puede hacer el cambio en el control remoto sin perder commits, por lo que rechaza el empuje .
Por lo general, esto es causado por otro usuario que empuja a la misma rama. Puede remediar esto buscando y fusionando la rama remota, o usando pull para realizar ambas cosas a la vez.
En otros casos, este error es el resultado de cambios destructivos realizados localmente mediante el uso de comandos como git commit --amend
o git rebase
.
Si bien puede anular el control remoto agregando --force
al push
comando, solo debe hacerlo si está absolutamente seguro de que esto es lo que desea hacer.
Los empujes forzados pueden causar problemas a otros usuarios que han obtenido la rama remota, y se considera una mala práctica. En caso de duda, no fuerces .
Git no puede realizar cambios en el control remoto como una combinación de avance rápido, que ilustra una Referencia visual de Git como:
Este no es exactamente su caso, pero ayuda a ver qué es el "avance rápido" (donde la HEAD
rama simplemente se mueve a una nueva confirmación más reciente).
El " branch master->master (non-fast-forward) Already-up-to-date
" es generalmente para sucursales locales que no rastrean su contraparte remota.
Vea, por ejemplo, esta pregunta SO " git pull dice que está actualizado pero git push rechaza el avance no rápido ".
O las dos ramas están conectadas, pero en desacuerdo con su respectiva historia:
vea " Historia interminable de GIT: ¿qué estoy haciendo mal aquí? "
Esto significa que su rama de subversión y su rama maestra de git remota no están de acuerdo en algo.
Algún cambio fue empujado / comprometido a uno que no está en el otro.
Arranca gitk --all
, y debería darte una pista de lo que salió mal: busca "tenedores" en la historia.