Somewhen (around the 1.6.x releases, I think) git became aware of changes inside submodules. That only serves to annoy me:
$ git status vendor | grep modified: #
$ git diff --ignore-submodules=dirty vendor # no output
$ git status --ignore-submodules=dirty vendor # On branch … nothing to commit (working directory clean)
# get git
git clone git://git.kernel.org/pub/scm/git/git.git git
cd git
git checkout v1.7.2-rc2
# make git. beware of setting prefix
make configure
./configure --prefix=/usr/local
make
sudo make install
# you REALLY don't want to `make doc`, use this instead
sudo make quick-install-man
sudo make quick-install-html