GIT branching estrategia con 2 ramas (maestro, de la tarea) - cómo prevenir el código de la pérdida en la rama master?

0

Pregunta

Estoy leyendo acerca de GIT branching estrategia que implica maestro, desarrollar, revisión, la liberación, la característica.

Estamos a 5 desarrolladores que trabajan en un sitio web de python. La siguiente es la ramificación de la estrategia que desea utilizar en GitHub.

  1. Código de producción es en la rama master.
  2. Puedo crear una Tarea en la rama de la rama master.
  3. Yo trabajo en la Tarea de la rama, y antes de empujar el código git me cambio a maestro y tire el código, cambie a la Tarea y la combinación con el maestro. Esto es para que mi código está en sincronía con el maestro a distancia
  4. Inserción de código
  5. Aumentar el PR de la Tarea de rama en rama master.

¿Qué sucede si el maestro tiene un código adicional que me falta en mi Tarea de la sucursal y me olvide de ejecutar el paso 3?

git github
2021-11-23 14:18:56
2

Mejor respuesta

1

Si usted está usando GitHub, usted puede agregar una Rama de Protección de la Norma que exige que las ramas para estar al día con la master rama antes de que puedan ser combinadas en una Solicitud de Extracción:

GitHub's 'require branches to be up to date before merging' protection rule

La rama debe estar al día con la base de la rama, antes de la fusión.

Ver el GitHub de la Rama regla de Protección de la documentación aquí.

2021-11-23 14:34:28

La otra respuesta parece señalar que esto es automático?
variable

Esta es una comprobación adicional de seguridad de su master la rama. Si esta rama regla de protección está desactivada, los médicos dicen: "comprobaciones de Estado puede fallar después de fusionar su filial si hay cambios incompatibles con la base de la rama."
Adil B

¿Esto evitar la mezcla incluso cuando no hay ningún conflicto (así que no hay línea de conflicto), pero el código ha cambiado en otros lugares? Obligando al programador a tirar más reciente código de mezcla y antes de hacer un PR?
variable

Sí, ese es el propósito de esta rama de la protección de la regla. La documentación de la página tiene algunos detalles, demasiado.
Adil B

Donde está la opción para evitar empujar a master sin PR?
variable

Habilitar el Restrict who can push to matching branches rama de la protección de la regla y puede restringir directa empuja a master, incluidos los administradores del repositorio.
Adil B
1

No pierde el código. Si su Task rama es empujado sin ser sincronizado a master en primer lugar, GitHub le dirá si hay algún conflicto.

En el caso de los conflictos, obtendrá este mensaje en la PR:


enter image description here


Luego se puede tirar master a nivel local, solucionar los conflictos y hacer retroceder a los cambios Task.

Si no hay ningún conflicto de archivos, puede combinar sin la actualización de su Task rama, incluso si master está por delante.

2021-11-23 14:30:54

¿Qué significa para ti If there are no conflicting files - ¿te refieres a que no hay ningún conflicto con el respeto a todo el archivo o líneas específicas de conflicto?
variable

Me refiero a los conflictos que se encontraría al combinar de forma local: las líneas que git no se puede combinar en sí. Puede ser un conjunto de archivos (archivo eliminado vs archivo modificado) o líneas específicas. Pero si modificar el mismo archivo en dos partes diferentes, no habrá conflictos
thchp

Hay alguna manera de que pueda prevenir la mezcla, incluso cuando no hay ningún conflicto (así que no hay línea de conflicto), pero el código ha cambiado en otros lugares?
variable

Puede aplicar la mezcla fast-forward en su repo stackoverflow.com/questions/60597400/... Pero ¿cuál sería el punto de hacer que? Si usted quiere proteger su rama de producción, que no debe permitir que su equipo se funden en ella, excepto para aquellos que tienen el derecho (mantener el papel vs escribir en papel, tal vez?)
thchp

Por evitar la mezcla me refería a prevenir PR.
variable

No se puede prevenir el PR. Usted puede proteger a las ramas de modo que sólo los administradores pueden combinar un PR, y requieren que los Rp son actualizados mediante la aplicación lineal de la historia
thchp

¿Qué acerca de la opción mencionada en la otra respuesta?
variable

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................