What would you suggest as a work flow when there is a inexperienced developer joins the team. I have been using git for my projects and now a new developer will join but he has not used any version control before. Project resides in Github and I have no way of pulling directly with him. We are both behind firewalls.
Should I create a branch for him on github and merge it to master my self or do I ask him for patches at the end of the day.
I haven't worked much with github (I do use it, but only the very basic stuff), but I've seen a "fork this project" feature, and a "request pull".
I suppose he can fork the project and request you to pull from his fork (instead of from his machine).
This is assuming that the fork will create a project for him, where he can push his changes to github, then you can pull from his github project, then push it to the main one, where he pulls from.
I really like using git format-patch to turn a set of commits into mails. Then you can mail the changes and reapply them in the other end. It also means you can discuss the changes on a mailing list etc.
For me, this is a brilliant way to work. You get code reviews in the same process and since email usually can go over firewalls, they are not that much of a problem. Getting the repository in shape is another game though.
Both options sound like ideas. Letting him push his stuff to github will give you a free off-site backup of his work though.
Let him work purely locally on his own client. Whenever you want you pull from his client merging into yours and reviewing the changes. Whenever you want you push into his client.