la mejor práctica para agregar flujo de trabajo git en sitios web existentes

Hasta ahora, trabajaba en mis sitios web solo y sin ningún tipo de control de versión directamente en mi server (básicamente files abiertos y modificados almacenados en cada /var/www/vhosts/domain.tld/httpdocs-Folder directamente sobre sftp con un IDE / sobre ssh) ya que era suficiente para mis necesidades.

Ahora estoy buscando la mejor manera de queueborar con otros desarrolladores y usar git para todos estos sitios web ya existentes.

¿Es recomendable crear múltiples repositorys desnudos como

/home/git/domain_1.git, /home/git/domain_2.git, …

con por ejemplo, git init --bare domain_1.git en alguna carpeta como /home/git/ con mi count de root y de alguna manera ** agregar cada /var/www/vhosts/domain/httpdocs-Folder existente /var/www/vhosts/domain/httpdocs-Folder a cada uno de estos desnudos git repos y luego agregue un gancho (¿post-receive?) a cada repository para sobrescribir su /var/www/vhosts/domain.tld/httpdocs-Folder específico en cada envío. Y luego, dé acceso a todos los desarrolladores a través del usuario de git con URL como ssh://git@1.2.3.4:/home/git/domain_1.git para cada repository individual.

Si ese path fuera correcto: ¿hay algún tipo de recorrido por ahí? No pude encontrar nada y estoy buscando una solución adecuada desde hace días, no es broma …

¿O hay alguna mejor / mejor práctica para resolver este tipo de problema?

** = (¿cómo ?! ya que ningún command git add como git add funciona en estos git add desnudos …)

No desea utilizar un repository simple (ya que no tendrá un directory de trabajo ).

Para crear sus repositorys, puede usar git init en la raíz de cualquier directory que tenga sus files. Mejor aún, use github / bitbucket y creará el repository por usted. Luego puedes clonarlo, hacer tu compromiso inicial y presionar.

El punto key aquí es que el lugar "principal" donde está almacenando su código no está en el server activo y no en su máquina de desarrollo. Esto también lo hace para que todos no tengan que push ssh a su server en vivo para hacer un push .

A continuación, clone sus repositorys donde los necesite, probablemente en su máquina de desarrollo para realizar cambios. commit y retroceder a bitbucket. Luego, tendrías otro clon en tu server en vivo (para ti en /var/www/vhosts/domain.tld/httpdocs-Folder ) donde tu process de "implementación" es git pull para get los últimos cambios que se han enviado a Bitbucket.

Otras opciones incluyen tener un process de ver el repository bitbucket para cualquier commit con su twig master y pull automáticamente.

Para que esto sea seguro, deberá investigar estrategias de ramificación . Elija uno y asegúrese de que todos los committers sepan cómo seguirlo.

Una simple es tener la twig master como "lo que está vivo en prod" y develop donde se realiza el cambio. Por lo tanto, el flujo de cambios de la máquina develop twig a la twig master a bitbucket al server activo. El uso de requestes de extracción (con revisiones de código) para fusionar el código con el maestro ayudará a mantener al maestro estable.

Lo primero es felicitarse por haber decidido utilizar un sistema de control de versiones para administrar su base de código. En segundo lugar, no necesita múltiples repositorys para mantener múltiples carpetas en su control de origen. Como ha solicitado las mejores prácticas, entraré directamente en lo que necesita hacer para establecerse con un control de fuente.

Necesita una herramienta DVCS —> Depósito GIT One para alojar su código fuente —-> Github / Bitbucket Cloud Una vez que tenga el repository creado en la herramienta de gestión de control de origen anterior, cree y vacíe el repository y extraiga todo su código dentro de ese repo. Sigue esto para saber cómo?

A continuación, debe diseñar una estrategia de bifurcación para que otros desarrolladores puedan seguir desarrollando en la misma base de código. Comenzaría con algo simple como una twig principal (para mantener diferentes versiones de lanzamiento) y una twig de integración llamada desarrollar. Sus desarrolladores necesitan crear twigs de características para implementar nuevas características. Puede revisarlos y fusionarlos en integración y luego en maestro. Para get más información, puede seguir https://git-scm.com/book/en/v2/Git-Branching-Branching-Workflows