Hmm, from what I gather from githooks(5)
the pre-receive
hook gets fed the updated refs on stdin
.
#!/bin/sh
while read old new name; do
email=$(git log -1 --pretty=format:%ae $new)
# check email
done
You would need to check the email addresses (there can be more than one line of data) and exit the script accordingly, i.e. exit 0
for success and e.g. exit 1
for failure.