When deploying the code of your component elastic.io platform creates a new version of the repository and places your code there. This recent deployment then is used in your integration flow next time you launch it.
Any Staging and Production Environments?
Currently, elastic.io has no such kind of capability to provide separate staging and production environments. However, there is a very easy workaround to the problem.
You can create two different component repositories. Push the code to the first one (let's call it component-staging) and test it in the flows. If you are happy with it push to the second one (let's call it simply component) and use it in the flows. Both components are available in your component list but since they are named differently you can pick one or the other one. This way you can create as many copies of repositories as you wish ... we have no upper limit on the numbers.
Development Branch to Master
This is how you could push your development branch into the master:
git push elasticio yourbranch:master