I have a web site with about 15,000 files on a production server. A remote developer is now doing the bulk of the work on the site, but I occasionally need to make some edits also. It is apparent that we need some version control, and so I am trying to set up git.
I really would like to keep the setup simple and straightforward. We don't need any sort of integrator to look over our changes - we are both fully trusted to push changes to the production site. I also don't see any need to push changes to a staging server before making them live, as there's nothing we could test there that we can't test on our local machines. I basically just want something which will keep us from clobbering each other's files. Here is the scenario I have in mind:
Production Server
↗↙ ↖↘
Developer1(LAMP) Developer2(WAMP)
Questions:
Does this workflow make sense for a team of two developers (one of whom only makes occasional edits) or are there better ones?
Is there any advantage at all in adding a staging server in between the developers and the production server?
I assume the production server should be a bare repo with a post-receive hook pointing to the webroot folder, that we would clone a copy to each developer's machine, and then git commit / git push to launch any changes back to production?
Is there any easy way to create a bare repo on the production server and then add the site's existing 15,000 files to it? Or do I have to download them to the clone repo on my local workstation and then do git add / commit / push to get them loaded in the production server repo? (They could take almost 13 hours to upload.)
Thanks!