Generally speaking, avoid submodules and use nuget packages instead. But if you have to deal with them, when you pull a full repo, it is likely you will need to update all the submodules as well. This can be done with running from the repo root:
git submodule foreach git pull origin master
Undo a commit to a local branch. Say you accidently push files to your local master instead of pushing to a branch for a PR, use this to undo the change:
git reset --soft HEAD~1
This will undo the commit AND leave the changed files still changed so you can push them to the correct branch. But if you want to blow away the changes and revert to the previous commit just use:
git reset --hard HEAD~1
But be really sure you want to do it as there is no undo.