Excellent Notes Dave!
One big idea I failed to mention is this:
A repository [a repo] is a tree of branches.
Each branch contains commits.
The commits are in the branches, not the repo.
Often I ignore the branches and use only the master-branch.
When I do that, I can pretend the commits are in the repo.
Much of git-knowledge is knowing how to copy commits from branch-A to branch-B.
If two branches are in the same repo, I copy commits using 'git merge'.
If two branches are in different repos, and have the same name, 'master' for example, I copy commits using 'git pull' [ or git push ].
-Dan