Aplastamiento se compromete muy lejos en la historia de Git

Diga, tengo 3 git commits A, B y C ¿Es posible squash A y C juntos mientras se mantiene B usando git rebase ? Si es así, ¿cómo puedo lograr esto?

Sí, puedes hacerlo, siempre y cuando no entre en conflicto (o puedes solucionarlo en un conflicto).

En el modo interactivo ( git rebase -i ) reorderar las líneas para juntarlas y marcarlas como squash.

Puede reorderar / quitar cualquier confirmación utilizando el mismo método.