<p>I have been using git for several months in a project developed only by myself. I have a local repository and push it regularly to github for backup purposes.</p>

<p>I want to add another developer to this project, however I will have the responsibility of integrating the whole project.</p>

<p>What is the recommended workflow? </p>

<p>Do we need a private and a public repository for each developer?</p>

<p>If the github repository is the main one, does the other developer have to clone this repository or the repository in my computer?</p>

<p>Should he have the right to push in my repository or should I pull from his repository?</p>

Git is geared towards
pulling
, rather than pushing. Ideally, the other developer would clone from your
public
repo on Github; then, when he was done with his changes, you'd either pull from a repo that he makes available to you, or you'd integrate his changes with patches that he emails to you. Either way, you'd pull the changes into the
private
repo
on your computer
, fix any mistakes that result from the merge, and then push his changes to your public repo (the one on Github).
Of course, there's nothing wrong with giving him commit access to your Github repo, either.