How to Squash Commits in the Middle of a Git Branch with Child Branches