¿'Git squash' (después de presionar) reescribe la historia?

Estoy trabajando en una sucursal separada para una function .

Ahora quiero esta característica en mi twig principal , pero solo tengo todas las confirmaciones aplastadas en una sola (con una recapitulación en el post de confirmación).

El caso es que ya push la twig a remote . Así que no estoy seguro si puedo ejecutar una git merge --squash feature (de la twig principal ) o si eso podría reescribir mi historial de git .

No entiendo si git merge --squash solo creará una nueva confirmación (que contenga, como un parche, todos los cambios de mi twig fusionada, de manera segura ), o si eliminará las confirmaciones anteriores de mi sucursal o simplemente hacer cualquier modificación al historial de git . (Quiero evitar eso porque trabajo en equipo).

¿Debo tal vez optar por un commit-range cherry-pick , en lugar de un git squash ? (pero el cherry-pick solo copyba todos los commits sin aplastarlos)

¿O fusionarse con squash está bien? (incluso después de una inserción en la twig característica remota)

Quiero integrar mi twig de características , como una única confirmación (posiblemente teniendo todos los posts de confirmación que obtengo con --squash ) en mi twig principal , pero sin reescribir el historial.

No se reescribe ninguna historia. Desde los commands de alto nivel, solo git rebase y git commit --amend realiza reescrituras de historial.

git merge --squash simplemente prepara un tree de trabajo que contiene toda la información de la twig que desea fusionar, tal como lo indica la documentation:

Produzca el tree de trabajo y el estado del índice como si se hubiera producido una fusión real (excepto la información de fusión), pero no realice un commit o mueva el HEAD, ni grabe $ GIT_DIR / MERGE_HEAD para provocar que el próximo command de git commit cree una fusión cometer. Esto le permite crear una única confirmación en la parte superior de la twig actual, cuyo efecto es el mismo que la fusión de otra twig (o más en el caso de un pulpo).