Estoy usando, para una serie de proyectos personales, el Git como repositorio de código.
En uno de los proyectos estoy usando un git, por decirlo de alguna forma, a palo seco. Es decir sin ningún tipo de capa por encima, estilo GitHub, GitLab, Gitorious, etc. En el otro proyecto estoy usando GitHub, ya que es un proyecto público.
Como comenté el una entrada del proyecto MyCloudChest el motivo es que quiero que sea un repositorio privado y gratuito. Así que lo monté en mi RaspberryPi.
Para un proyecto personal es suficiente, ya que no tengo que gestionar muchos usuarios ni hay mucha concurrencia. Pero esta solución no es tan adecuada para un proyecto un poco más grande. Por lo menos comparado con las posibilidades que te proporcionan estos tipos de productos que complementan la funcionalidad de Git.
Estos productos, aparte de tener una administración mediante un web, que siempre es más agradable que la línea de comandos, proporcionan una serie de facilidades que me parecen muy interesantes.
Sobre todo la gestión de permisos en las ramas y la funcionalidad de merge o pull request. De tal forma que los programadores tienen que solicitar a un responsable que les acepte el cambio y lo incluya en la rama principal.