control system. Git has a tiny footprint with lightning FAST performance and features like cheap local branching, convenient staging areas, and multiple workflows.
of the source code, you do a “clone” of the entire repository. This means that even if you're using a centralized workflow, every user essentially has a full backup of the main server.
should not be shared without permission.  A .gitignore files tells Git which files to ignore  These files don’t get pushed into the repository  Sample: .DS_Store uploads .sass-‐cache IGNORING FILES
should not be shared without permission.  Make changes on your machine  Push to staging server for the client to verify  Easily rollback if necessary  Multiple developers  Work in branches  Never open FTP again DEVELOP LOCALLY
should not be shared without permission.  Private GitHub repo  DB dump in repo  Single config.php  database.php for each environment (auto generated) BASE INSTALL
should not be shared without permission.  The most complicated piece (with any app)  You want your development environment to match as close as possible to production  Once the site is live, all structural DB changes happen on production and “sync” down THE DB
should not be shared without permission.  A “development” server that the client can access  Server provisioning from a “recipe”  LAMP stack  Git, rake, etc.  Uses the chef gem to create a server using the Rackspace Cloud API  It’s for real some black magic STAGING
should not be shared without permission.  Develop site locally  Provision staging server  Push to staging  Client enters all content on staging PRE-LAUNCH FLOW
should not be shared without permission.  Provision production server  Copy DB from staging to production  All further content/DB changes happen on production LAUNCH
should not be shared without permission.  Staging becomes an area to preview new features  All changes get pushed from development to staging, then to production  All DB changes flow “down” POST LAUNCH
should not be shared without permission.  Clone EE base repo (local)  bundle install (local)  rake setup (local)  Provision staging server  Add environment to config.yml  Provision production server  Add environment to config.yml THE WHOLE PROCESS
should not be shared without permission.  Clones repo  Creates shared directories and sets permissions  Avatars, captchas, etc.  Upload destinations  Creates database.php  Imports DB CAP SETUP
should not be shared without permission.  Needs tasks to:  Copy DB from remote to local  Copy DB from local to remote (rare)  Copy content from remote to local  Clear CE Cache  Clear Stash Cache BACK TO THE DB