We are using git-maven-hudson daily.
For hudson there is a git plugin which works great and has a killer feature.
Maven takes care of its own dependencies and does not need to know about either git or hudson, which makes for nice decoupling and less moving parts.
Now for the killer feature :
We work ticket based. In git we use a branch per ticket and do all development for a single ticket on that branch. When ready to share we push the branch to a central repo. The Git plugin will check and load all new branches, merge them to the master and compile/run tests/deploy to Nexus and push the patches to the master branch.
We pull regularly from the master branch to keep close to head.
This works incrediby well with hardly any merge conflicts on the server.