使用GitHub在现有网站上跟踪我自己和供应商的代码更改

I'm going to implement version control for a project via GitHub. It's a website using mostly PHP and JavaScript. And we're switching from one script to another. I'm using cPanel / ftp to access the files. I would prefer not to mess around with apache config files.

/home/website/ - home directory

/home/website/public_html/ - document root for website.com - has existing php script files which will be overwritten once the beta site is tested to be working properly

/home/website/public_html/beta.website.com/ - document root for beta.website.com - has existing php script files which have been minimally modified from the original vendor source. ie header / footer / config files.

/home/website/public_html/orig.website.com/ - a possible directory where I could update the original vendor files?

/home/website/public_html/addon-website.com/ - document root for another addon domain - completely separate website has nothing to do with the project

This script is to be used on many different websites. The difference would be in:

  • config files
  • template files
  • website specific changes

I have the original vendor source files on my local computer but no local web server. I need help in initial setup. How should I set things up so I can track all of the following:

  • track changes to the original vendor files done via patches and updates
  • track changes to 1 or many versions of the original script installed on different websites
  • track changes to a beta which has my own modifications to the vendor files
  • track website specific changes
  • push changes from vendor files to where I do my own modifications
  • push changes from my modifications to all different websites / website specific

I had a look at how do I maintain divergent code on github but I need more specific instructions than what is provided there. Should I even be trying to do this all in one repo with many branches / forks / whatever?

It would be beneficial to have an integration branch and each party to work on features that are merged there. This is the workflow that I developed with my colleagues and has worked out very well:

http://dymitruk.com/blog/2012/02/05/branch-per-feature/

For an introduction of Git itself, this is a very good resource:

http://git-scm.com/docs