I can't figure out how the 'rebase children of xxx interactively' works.
I created a 'temp' branch and 4 commits, adding 'a', 'b', 'c', then 'd' to README.me. I then right-click on the original commit I branched from and picked 'rebase children of xxxx interactively'. A window pops up with 4 commits.
So I want to squash them all into 1 commit with all 4 changes in it. I right-click on the top 1 and pick 'Squash with previous commit'. That then says [2 commits] and message is 'xxx (+1 squashed commits)'. I then right-click on that and squash it, then do it again. Now I have 1 line that still says "[2 commits] and 'xxx (+1 squashed commits)', but there are four commits when I expand it.
Now I right-click on the top line and edit the message and it says '[4 commits]' and the message is my new 'All Changes' message. Looks good, right? So when I hit 'OK' it works, BUT I STILL HAVE 2 COMMITS. The first commit in the branch where I added 'a' to the file is still there, even though it was listed in the 4 commits that should be squashed together.
When I use the command line, I type `git rebase -i <original commit>`, where <original commit> is the one I right-click on in source tree. My editor opens up and I 'p'ick the top line and 's'quash for the other three. At the end I get to edit the final commit message, and it looks right with 1 commit directly off the base commit I rebased onto.