Intentando entender el flujo de trabajo de Git

Soy obsesivo con el hecho de que mi flujo de trabajo no es tan productivo como quiero.

Busco en Internet "CÓMO UTILIZAR GIT", bueno, fue una búsqueda de expertos, muchos tutoriales para desarrolladores realmente shinys.

luego busco "CÓMO USAR GIT PARA UN FLUJO DE TRABAJO ÓPTIMO", esa ayuda, ahora puedo usar Github, Bitbucker y ahora sé cómo comprometer, empujar, extraer desde TOWER o GitApp, y algunas veces lo hago con terminal.

Pero eso no resuelve mis problemas de flujo de trabajo.

Todavía desarrollo algunas veces en vivo, usando "al save carga en FTP" en SublimeText, algunos de mis compañeros de equipo no pueden usar el mismo Sass al mismo time, y bueno, todo es un desastre.

Decido comenzar a entrenarme para aprender a usar bien git. Entonces comienzo mi búsqueda en google "Git for Dummies".

¡¿Adivina qué?! , eso también fue técnico para mí, pero aprendí lo siguiente:

Tengo este sitio: git.dev en mi máquina doméstica local: Repositorio local Tengo este repository privado en BitBucket. y tengo Live Server en Linode.

Entonces, lo que empiezo a hacer es desarrollar mis sitios web localmente, empujándolo a bitbucket para que mis compañeros de equipo puedan clonarlo para hacer cambios.

Luego, cuando todo esté bien, lo enviamos al Live Server.

Creo que hay un vínculo perdido en esta idea, porque tengo el Dev-Environment (Máquina local), el Backup-Environment (Bitbucket), el Live-Environment, pero creo que se necesita un Test-Environment.

¿Estoy entendiendo bien las cosas?

¿Puede alguien ser tan amable de guiarme a la fuente de luz correcta?

Thnanks