Comprensión básica de Git

Si estoy administrando un proyecto y tengo dos desarrolladores trabajando para mí, estoy empezando a rastrear el proyecto hoy. Mi proyecto se encuentra públicamente en www.somedomain.com .

Entonces, para crear un repository centralizado, yo haría lo siguiente:

 //ssh + cd into the directory I want to track, then do git init --bare myrootdirectory.git 

Luego, los desarrolladores que trabajan en el proyecto clonarían este repository en su máquina local y lo usarían como lo desearan, realizando cambios y desarrollando proyectos en su máquina local. Aquí es donde estoy un poco confundido.

¿Cómo podrían los desarrolladores comprometer su código en el repository central, si --bare , aunque no --bare , no les impediría hacer eso?

¿Qué sucede después de que un componente de proyecto ha sido probado por el desarrollador y me gustaría rastrearlo en el repository centralizado que utilizamos – ¿ --bare en --bare ?

Además, ¿los cambios que los desarrolladores hacen en su máquina local que comprometen, solo están disponibles en su máquina local, o en el repository centralizado también? Leí que hay algún vínculo entre el repository centralizado y el local en la máquina de desarrollo, por lo que estoy preguntando.

Agradezco la aclaración, ¡gracias de antemano!

La respuesta es dos repositorys git, (uno desnudo y otro no), unidos por anzuelos. Puede leer más sobre esto en este artículo , pero lo explicaré en breve:

El server tiene dos repositorys, uno "público" y uno "de trabajo" (que está vacío), lo empuja hacia y desde "trabajo", y "trabajo" tiene un gancho git que va a "público" y automáticamente tira de los cambios cuando se empuja hacia adentro.

No empuje hacia un repository no desnudo , causa problemas.

Algo más de lectura:

  • Git Hooks
  • Trabajando con controles remotos