Ansible git module: Is it a pull or pull+push

How does the git module work?

a) Does it do a pull on the remote server?
b) Does it first do a pull on the local admin server and then rsync copy the repo to the remote server?
If not, is it possible to do this in some other way?

Thanks