Squash Git confirma no meio de uma ramificação
Quero esmagar vários commits juntos no meio de uma ramificação sem modificar os commits antes e depois.
Eu tenho :
A -- B -- C -- D -- E -- F -- G
| |
master dev
origin/master
Eu quero esmagar isso em
A -- H -- E -- F -- G
| |
master dev
origin/master
OndeH
é equivalente aB -- C -- D
. E eu quero poder especificar a mensagem de confirmação deH
. A
é a última confirmação que foi enviada por push, para que todas as confirmações posteriores possam ser reescritas sem atrapalhar o servidor. A idéia é limpar a história antes que eu avancemaster
.
Como eu posso fazer isso ?
PS: Observe que, no meu caso, na verdade, tenho muito mais do que 3 comprometimentos para esmagar no meio, mas se eu puder fazer isso com 3, devo conseguir com mais.
PPS: Além disso, se possível, eu preferiria uma solução em queE
, F
eG
permanecem intocados (principalmente em relação à data de confirmação).