I am new to Magento world and was wondering what is the best setup for develop and production environment? Currently, I use git to commit test code to development site on a local server, and when I am satisfied I push it up to live branch.
Would I be able to continue using the same setup with Magento? Is there a better way?
My main concern is the need to deploy static files after each template amendment, and at least locally it takes quite a bit of time. If I push changes onto live branch, would I have to redeploy static files on the live server as well? And wouldn't that affect user experience even if for a short while?
Yes the static deployment and compilation cause down time, dont forget you want to use production mode on a live site. Info on those modes here - http://devdocs.magento.com/guides/v2.0/config-guide/bootstrap/magento-modes.html
You can use a similar setup to Magento 1 and push to to live as you would normally.
But yes you still have to do all that refreshing and depending on the site this can take a while. The last thing I heard from a Magento 2 dev was they had no plans to create a zero downtime solution for compilation etc.
Its quite disappointing to hear they have no plans to create zero downtime, in the age of cloud, redundancy and high availability.
Nevertheless, I did find a resource that outlines a way to minimise the down time: