Configuración de un repository local de Git sin usar github para múltiples usuarios

Estoy tratando de configurar un repository local de Git en un server seguro (por lo que no puedo usar github en absoluto). Soy un novato git. Es para proyectos múltiples, y cada directory de proyecto contendrá el file .git. He creado un model que parece funcionar para un solo usuario, pero no creo que esto se traduzca bien para múltiples usuarios. En cada proyecto, he creado una twig de 'desarrollo' que es donde se llevarán a cabo el desarrollo del código y las testings. Cuando estemos contentos con esto, nos uniremos a la twig principal, que es donde se ejecutarán los progtwigs de rutina. El flujo de trabajo es:

En el desarrollo de sucursales:

Realice cambios en text.txt

git add python.py git commit -m "made change to python.py" 

Ahora ejecutamos python.py desde la twig de desarrollo para probar si estos cambios funcionaron. Si no, podemos restaurar o continuar desarrollando. Cuando estamos felices:

 git checkout master git merge development 

Ahora podemos ejecutar nuestro progtwig recién desarrollado desde nuestra sucursal maestra a sabiendas de que funciona.

Sin embargo, esto está bien cuando estoy trabajando solo, pero este model necesita acomodarse para que más usuarios desarrollen el código. Aquí es donde estoy confundido. ¿Es este un buen sistema de inicio o clonar nuestro repository en una máquina local sería una mejor manera cuando varias personas lo están utilizando?

Si dos personas trabajan en la misma tarea al mismo time en la twig de desarrollo, al agregar al área de preparación / confirmación, se perderán algunos cambios.

Por lo tanto, ¿deberíamos clonar en una máquina local, hacer nuestros cambios, hacer nuestras testings y luego regresar al repository local para que un usuario revise estos cambios? El problema que veo con esto es que estamos usando máquinas de Windows … y nos dirigimos a un server Linux Ubuntu, que es donde hacemos nuestro trabajo. Por lo tanto, nuestras máquinas Windows no tienen los files necesarios (y en algunos casos bases de datos SQL) para probar nuestro trabajo. Además, si ponemos los files, los directorys en las secuencias de commands deberán cambiarse cada vez para acomodarse a esto.

¿Alguien ha tenido alguna experiencia haciendo algo similar, o puede señalarme en la dirección correcta? Gracias

Estás preguntando muchas cosas. Trataré de señalarte en la dirección "correcta"

Definitivamente quiere que cada desarrollador clone el repository en su máquina local.

De hecho, el repository principal generalmente está bare , lo que significa que contiene solo los objects de git y no una copy de salida, de modo que ni siquiera puede ver o editar files en el repository principal.

Está bien desarrollarlo en una máquina de Windows e implementarlo en un server Linux, pero necesita administrar el entorno. Por ejemplo, puede tener un file de configuration para producción y un file de configuration local, no comprometido, que cada desarrollador ajuste para su propia máquina.

Puede consultar el Capítulo 5 – Git distribuido del libro Pro Git para conocer algunos flujos de trabajo comunes distribuidos.

Puede save algunos dolores de cabeza instalando una alternativa de estilo privada de Github.

Un último pensamiento: considere un repository por proyecto en lugar de un repository con múltiples proyectos en él