Create another branch from your last known good pull. Then do a Pull in the new branch from your friend. You will then be able to invstigate the log of the new branch and then know how to merge to two branches together into one then you can push to him.
Our normal development setup is to have one GIT repository that everyone rebases from. I recommend rebasing instead of pulling from a central repository. This is because if you pull from the repository then rebase to the same repository your commits that you've sent to the repository will conflict with your current branch. We generally found it easier if you have to use pull or push, to use patches instead.
Eg.. Never rebase from a repository that you've pulled from.