Git: sobreescribiendo múltiples errores en la twig de funciones remotas después de la recuperación / aplastamiento local

  • Bifurqué un repository de GitHub en otherusername / X en mi propia count en myusername / X
  • He estado desarrollando localmente y presionando commits hasta myusername / X en branch myfeature , y he enviado una request de extracción para fusionar myusername / X myfeature en otro nombre de usuario / X master
  • En el transcurso del desarrollo y recibiendo comentarios sobre mi request de extracción abierta, he realizado 10 confirmaciones para mi característica . Ahora el desarrollo está hecho y estamos listos para fusionarnos, así que git rebase -i origin/master mis confirmaciones localmente con git rebase -i origin/master hasta una única confirmación.
  • Ahora la twig de myfeature en myusername / X tiene los 10 commits que hice upload, y mi myFaature local tiene solo un commit
  • Cuando trato de hacer git push myfeature , para que myusername / X myfeature tenga una única confirmación y se pueda combinar limpiamente con otro nombre de usuario / X master , git se queja de que mi sucursal local está detrás de la twig remota, y que necesito extraer los cambios desde la twig remota. Pero esto recrearía todos esos compromisos que acabo de aplastar.

¿Cómo actualizo la twig myusername / X myfeature para tener solo una confirmación?

Probablemente estés buscando forzar el empuje. por ejemplo, git push -f remote myfeature

Lo que está sucediendo es que cuando volviste a establecer localmente y aplastaba confirmaciones, divergías de la historia de la sucursal remota. (por ejemplo, reescribió el historial). Siendo una twig de características enfocadas, que usted es el único desarrollador, el empuje de fuerza probablemente sea correcto en este caso, sin embargo, tenga en count las muchas advertencias que encontrará sobre reescribir el historial y forzar la fuerza, ya que puede causar fácilmente que sucedan cosas malas.

La manera más fácil que puedo imaginar es la siguiente:

Conservas tu característica local, borras la twig remota y la vuelves a crear con tu compromiso único en tu tienda local .

 git push remote :myfeature git push remote myfeature remote in this case is your myusername/X