Git Restablece el repository local después de un duro empujón a control remoto

Tenemos un process de construcción de continuous integration apuntando a un repository fuente git. Cuando el process se ejecuta, el process de CI empuja su salida a un repository de releases. Mi pregunta gira en torno a la siguiente situación.

  1. Nuestro server CI construye desde el origen y envía los resultados a nuestro repository de lanzamientos.
  2. Un desarrollador revisa el repository de releases, agrega un script de cambio de esquema (que no es agregado por nuestro process de CI), luego modifica el compromiso anterior y realiza una operación de empuje forzado (para no agregar otro compromiso como resultado de solo agregarlo) un guión).
  3. La próxima vez que se ejecuta el process de IC e intenta impulsar su salida, aparece el siguiente error: "Las actualizaciones se rechazaron porque la punta de su twig actual está detrás de su contraparte remota".

Lo que me gustaría hacer es decirle al server de CI que restablezca el repository local para que coincida exactamente con el repository remoto. He observado varios problemas similares y todos dicen ejecutar los siguientes commands (o muy similar).

  1. git fetch --all
  2. git reset --hard [remote repository]

Incluso después de ejecutar esos commands antes del process de compilation, sigo recibiendo el mismo error. ¿Alguna idea sobre lo que debería hacer? O si lo que quiero hacer es incluso posible.

Parece que estaba reiniciando el repository incorrecto. Cambié los commands para hacer lo siguiente (con el último paso que podría ser innecesario)

 git fetch --all git reset --hard @{u} git pull 

El @{u} le dice a git que restablezca cualquier twig que esté actualmente desprotegida, eliminando así la necesidad de especificar la twig manualmente (lo cual debo haber estado haciendo mal).

Un elemento adicional de interés. Si está ejecutando los commands en un script power shell (cómo nuestro server CI ejecuta estas acciones) debe escribir el reinicio de git de la siguiente manera (ya que las llaves producen errores de análisis).

 git reset --hard "@{u}"