git no (de forma predeterminada) le permite empujar a una rama cualquier cosa que "rebobine" la punta de la rama. En otras palabras, si la cabecera de bifurcación actual no es un padre directo o antecesor de la sugerencia de bifurcación, se rechazará la inserción.
Puede intentar presionar de todos modos utilizando la opción -f
en git push
o usando un refspec con un '+' inicial, p. git push origin +mybranch:mybranch
.
Por lo general, los repositorios remotos seguirán sin permitir que esto suceda, ya que corre el riesgo de perder confirmaciones si diferentes personas pueden insertar indiscriminadamente sugerencias de sucursales que no incluyen confirmaciones que no tienen localmente.
Puede anular este comportamiento cambiando el parámetro de configuración receive.denyNonFastForwards
en el repositorio remoto (suponiendo que tiene el acceso appropraite al repositorio remoto).
Si no tiene dicho acceso, puede ser capaz de lograr esto al eliminar la rama remota y volver a crearla.
p. Ej.
git push origin :mybranch
git push origin mybranch
Tenga en cuenta que las versiones más recientes de Git incluyen un parámetro de configuración receive.denyDeletes
que, si se establece, evitar que esto potencialmente peligroso solución de trabajo.
Agradable, no sabía acerca de denyNonFastForwards: Supuse que necesitabas un gancho para hacer cumplir eso. – araqnid