I am not an expert git user myself, but as far as I know using a new local branch with the squashed commits is the only feasable way to preserve your complete commit history. There may be other ways which would probably be even more tricky to use. Having a local and remote branch that differ in commits and are not supposed to be merged is simply not inteded git behaviour.