Working with Git submodules

So I've got all my contrib and custom modules and themes as git submodules within a plain Pressflow installation ... Today I learned that after I add all my submodules, push the entire (parent) project to "origin" or "collab", and then clone it down somewhere else, in the new location I have to run `git submodule init` and `git submodule update` to have each of the git submodules populate themselves.

This is because the parent repo, which I just cloned, only has a 3-part reference to the submodules: each of their (1) git origin/source, (2) relative path, and (3) last commit.

From the perspective of the parent repository, there comes a time when its' submodule commits must be committed.  ;) 

root@example.com [~/www]# git status
# On branch my_parent_repo_branch
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   sites/all/themes/mysubmoduletheme (new commits)
#
root@example.com [~/www]# git add sites/all/themes/mysubmoduletheme
root@example.com [~/www]# git status
# On branch submodules
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   sites/all/themes/mysubmoduletheme
root@example.com [~/www]# git diff --staged
diff --git a/sites/all/themes/mysubmoduletheme b/sites/all/themes/mysubmoduletheme
index 52c54c9..f4195c8 160000
--- a/sites/all/themes/mysubmoduletheme
+++ b/sites/all/themes/mysubmoduletheme
@@ -1 +1 @@
-Subproject commit 52c54c99d799cb99bfb6e47219326b5d1b86b9bd
+Subproject commit f4195c854f4dbea467eb129f2e03857b007fc5b6
root@example.com [~/www]# git commit -m "Calling for the latest version of the mysubmoduletheme (git submodule) within parent repo."
root@example.com [~/www]# git push origin master

Done. Submodule commits committed.  I understand how and why this works, but hope dog will help ease the burden of repetitive and redundant commits while keeping each logical unit of a project managed cleanly.