Too late I realized that this way of adding a subtree...
git remote add shared remoteRepoWithSharedCode.git
git subtree add --squash --prefix=myShared shared master
does not have the same effect as this...
git subtree add --squash --prefix=myShared remoteRepoWithSharedCode.git master
The former does much the same as the latter, but in the former method the fetch done by subtree add also creates an additional "[new branch]" that is a remote tracking branch. As a consequence, the first method also mixes in the remote branch's history when viewing sourcetree's graph of commits for local branches -- despite the fact that --squash was used. I believe the --squash is effective regarding the subtree added into the main branch, but it has no effect to hide the history related to the remote tracking branch.
Is there a way to fix this without more or less starting over before the point of adding the subtree? I don't want the subtree shared code's history cluttering up the commit graph. But even if I try to delete the remote tracking branch, that still doesn't eliminate the extra remote code history from the commit graph. What I want is to get to the state I would have had if I had used the second way of adding the subtree instead of the first way.
Thanks!
p.s. EDIT: As I indicated below in the solution I eventually discovered, the potential problem with using remotes with subtrees comes from any tags that are brought into the remote tracking branch for the subtree's remote repository. To prevent this problem, it turns out that there is an option that one can use to exclude tags in the remote's remote tracking branch.
git remote add --no-tags ...
This prevents the tags that would defeat the purpose of using --squash with git subtree operations involving that remote.