Rebase sin cambiar el contenido

¿Existe una opción simple para git rebase que diga: "Reescribe este historial, resolviendo automáticamente todos los conflictos de tal manera que el contenido de HEAD después de la rebase seguirá siendo el mismo que ahora"?

Tengo una twig de características y me he fusionado en el maestro; en esencia, me gustaría volver a hacer eso como una rebase en master.

Pensé que -X ours podría ser esa opción, pero el resultado fue un contenido diferente.

Según lo entiendo, lo que quieres no es exactamente una fusión o una rebase. Es más un corte. Ya ha combinado maestro en su característica, para que sepa cuál es el tree resultante.

En términos de git, esto significa que quiere que su nueva confirmación use el mismo tree que el encabezado de su twig de características. Suponiendo que su twig de característica se llama my-feature, entonces puede direccionar directamente la raíz de tree de dicha confirmación con my-feature^{tree} .

Desea una nueva confirmación cuyo padre sea su maestro y cuyo tree reutilice uno que ya exista en su repository. El command de plomería git commit-tree te permite ejercer este fino nivel de control.

  $ git checkout master
 $ git merge --ff-only \
   $ (git commit-tree my-feature ^ {tree} -p $ (git rev-parse master) -m FIXME)
 $ git commit --amend -C $ (git rev-parse my-feature) 

La salida de git commit-tree es SHA1 de la nueva confirmación. El command git merge captura ese SHA1 y lo fusiona en su maestro local. El --ff-only existe como una especie de falla segura y para express nuestra intención. La nueva confirmación será un avance rápido por construcción debido a la denominación del maestro como su elemento primario con -p .

La opción -C para la git commit permite reutilizar el post de confirmación de otra confirmación, el encabezado de su twig de características en el caso anterior.