The error I was seeing was:
error: pathspec '1a74c25a424bc26989722e730d56c305d87e430c' did not match any file(s) known to git.
Unable to checkout '1a74c25a424bc26989722e730d56c305d87e430c' in submodule path 'vendor/plugins/attachment_fu'
I saw a post about it being related to the git 1.6 branch but in my case I am still using git 1.5.6. The only solution I saw was to remove the submodule and then re-add it later. To remove a git submodule, you have to edit 2 files and remove the directory with the submodule.
Step 1: Edit the .gitmodules file and remove the reference to your submodule. In my case, I removed the submodule for attachment_fu.
Step 2: Edit the .git/config file and remove the reference to your submodule. Again it should only be one place.. maybe a couple of lines.
Step 3: Remove the actual submodule. The command to do that is git rm --cached plus the directory in question. Note that the trailing slash is not there.. be sure to honor that syntax when you remove your submodule.
git rm --cached vendor/plugins/attachment_fu
Step 4: Since we're talking git, you may want to commit and push your changes. Do that the way you normally go about things. Probably something like:
git commit -a -m "removed attachment fu temporarily"
You should now be free of your submodule! If you want to add that submodule back then you'll need roughly these commands. Replace the path for attachment fu in this example to the path of your submodule:
git submodule add git://github.com/technoweenie/attachment_fu.git
git submodule init
git submodule update
git commit -a -m "added attachment fu back to the repo"