git – twig principal de locking para algunos usuarios?

Me gustaría obligar a otros miembros del equipo a no trabajar en la twig principal, sino en una twig de desarrollo. tenemos un repository git central donde empujamos nuestro trabajo. Me gustaría saber si es posible bloquear a los usuarios para que no modifiquen la twig principal, sino que solo permitan que ciertos usuarios lo hagan.

Me gustaría tener el siguiente "flujo de trabajo"

  • el desarrollo siempre se hace solo con una twig de desarrollo
  • el administrador de versiones es responsable de la twig principal y solo él puede fusionar elementos de una twig de desarrollo en el maestro y enviarlos a la twig principal en el depósito central.

¿Es esto posible y cómo puedo lograr esto?

Ver man githooks : en el repository compartido, puede crear un $(git rev-parse --git-dir)/hooks/pre-receive o $(git rev-parse --git-dir)/hooks/update que verifica qué intentan presionar tus usuarios a qué refs. Git viene con un gancho de ejemplo paranoico de actualización que impone las ACL por ref.

Mi enfoque de bajo nivel sería simplemente dejar que el RM sea el único con las keys SSH para enviar al repository que todos los demás usan como reference maestra. De esta forma, nadie más que el RM puede esforzarse por dominar, sin embargo, todos pueden trabajar ya que tienen sus propias twigs de desarrollo local y los desarrolladores pueden compartir entre ellos las twigs que les gustan.

El siguiente paso es hacer un probador de ollas de cocina para las cosas que entrarán en el maestro pronto. Este pozo normalmente se llama next o dev . La idea es que cuanto más impacto tenga una sucursal, más time cocinará antes de fusionarse para dominar. Esto le da al RM control total sobre las twigs que deberían graduarse y aún les da a todos un aviso.