tag remota rama eliminar crear git gitlab bitbucket git-branch

remota - Cómo restringir el acceso a la rama maestra en git



git pull (1)

Git en sí no tiene esa característica, pero muchos proveedores de hosting sí la tienen. Esto se conoce generalmente como protección de rama . No hay manera de impedir el acceso de lectura hasta donde sé.

Utilizando BitBucket

BitBucket permite una gran cantidad de personalización de las acciones para evitar mediante la protección de rama. Para proteger una rama:

  1. Ir a un repositorio en un proyecto.

  2. Seleccione Configuración> Permisos de rama.

  3. Haga clic en Agregar permiso.

  4. En el campo Ramas, seleccione Nombre de rama, Patrón de rama o Modelo de rama.

    • Nombre de rama: seleccione una rama existente por nombre.

    • Patrón de rama: especifique una rama utilizando la sintaxis de patrón de rama para hacer coincidir los nombres de rama.

    • Modelo de ramificación: seleccione el tipo de rama para restringir el acceso.

  5. Seleccione el tipo de acciones que desea evitar.

    • Eliminación de sucursales: evita la eliminación de sucursales y etiquetas.

    • Reescritura del historial: evita que el historial se vuelva a escribir en la (s) rama (s) especificada (s), por ejemplo, mediante un impulso de fuerza o rebase.

    • Cambios sin una solicitud de extracción: evita que se introduzcan cambios directamente en las sucursales especificadas; solo se permiten cambios con una solicitud de extracción.

    • Todas las modificaciones: evita los empujes a las ramas especificadas y restringe la creación de nuevas ramas que coincidan con las ramas o patrones especificados.

  6. Opcional: Agregue exenciones para cualquiera de las restricciones seleccionadas. Agregar un usuario o grupo como una exención significa que no se aplicará a ellos. Esto no es necesario; no agregar ninguna exención significa que la restricción se aplicará a todos.

  7. Haga clic en Crear para finalizar.

Source

Usando GitHub

Rama protegida en GitHub:

  • No se puede empujar a la fuerza

  • No se puede eliminar

  • No se pueden fusionar los cambios hasta que se aprueben las comprobaciones de estado requeridas

Para proteger una rama:

  1. En GitHub, navegue a la página principal del repositorio.

  2. Bajo el nombre de su repositorio, haga clic en Configuración.

  3. En el menú de la izquierda, haga clic en Ramas.

  4. En Ramas protegidas, seleccione la rama que desea marcar protegida usando el menú desplegable.

  5. Seleccione Proteger esta rama.

  6. Haga clic en Guardar cambios.

Source

Usando GitLab

En GitLab, proteger una rama hace lo siguiente:

  • impide su creación, si no se ha creado, de todos, excepto de los usuarios con permiso Maestro.
  • previene los empujes de todos, excepto los usuarios con permiso Maestro
  • Evita que alguien empuje a la rama.
  • Evita que alguien elimine la rama.

Para proteger la rama:

  1. Navega a la página principal del proyecto.

  2. En la esquina superior derecha, haga clic en la rueda de configuración y seleccione Ramas protegidas.

  3. En el menú desplegable Rama, seleccione la rama que desea proteger y haga clic en Proteger.

  4. Una vez hecho esto, la rama protegida aparecerá en la lista "Ya protegida".

Luego puede permitir cierto acceso a los usuarios con derechos de desarrollador marcando "Los desarrolladores pueden fusionarse" o "Los desarrolladores pueden presionar"

Source

Tengo un solo repositorio en el que tengo 2 grupos de usuarios:

  • Administradores
  • Desarrolladores de HTML / UI

No deseo dar acceso de lectura / escritura de mi rama master a mis desarrolladores de HTML, ya que no necesitan trabajar en ello y no deben estar haciendo un mal uso del código principal.

A pesar de que necesitan trabajar en su propia rama ui-developers . ¿Cómo hago esto en git?

PS: estoy usando BitBucket

ACTUALIZAR:

Había publicado esta pregunta cuando era extremadamente nuevo en codificación y git. Después de 2 años de experiencia, ahora sé que git no permite restringir el acceso de LECTURA para ninguna rama en particular. Pero servicios como Bitbucket, Gitlab, Github te permiten poner restricciones de escritura y fusión en las sucursales.

Además, me cambié a Gitlab 6 meses atrás :)