El último paso de una solicitud de incorporación de cambios es finalizar el trabajo en la rama de implementación. Normalmente, esto significa fusionar tus cambios en la rama de lanzamiento o en la rama principal. Antes de eso, deberá confirmar que el cambio cumple los requisitos del proyecto.
Validación de comprobaciones previas a la implementación
Antes de fusionar, confirmarás que el cambio se puede desplegar con seguridad. Las comprobaciones de estado muestran si las confirmaciones cumplen las condiciones establecidas para el repositorio, como compilaciones de integración continua, pruebas, examen de código o comprobaciones de implementación. Te ayudan a ti y a los revisores a entender si una solicitud de extracción está lista para fusionarse.
Los repositorios suelen requerir ciertas condiciones antes de que una solicitud de extracción pueda fusionarse, entre las que se incluyen:
- Comprobaciones de estado obligatorias que deben superarse, como las comprobaciones del estado y de preparación de la aplicación ejecutadas por tu canalización de implementación.
- Revisiones obligatorias o aprobaciones de los responsables del código.
- Los conflictos de fusión deben resolverse.
Las ramas protegidas aplican estos requisitos para que las ramas de implementación permanezcan estables.
No todas las comprobaciones son las mismas. Las comprobaciones avanzadas creadas por productos como GitHub Actions pueden incluir registros detallados y anotaciones, mientras que los estados de confirmación de cambios más sencillos pueden ser publicados por diversos sistemas conectados. Comprender esto le ayuda a interpretar por qué una solicitud de incorporación de cambios es o no está lista.
Integración del código en la rama principal o de lanzamiento
Cuando se cumplan los requisitos, combine la solicitud de incorporación de cambios para incorporar sus confirmaciones a la rama base. También puede automatizar la fusión para que una pull request se fusione en cuanto cumpla los requisitos. Las solicitudes de incorporación de cambios ofrecen diferentes estrategias de combinación en función de cómo desee que se vea el historial del repositorio:
- La confirmación de combinación conserva todas las confirmaciones de la rama de solicitud de incorporación de cambios y agrega un punto de combinación explícito.
- Squash and merge combina todos los commits en uno solo para mantener un historial más limpio.
- Reorganizar y fusionar añade cada confirmación a la rama base para crear un historial lineal sin una confirmación de fusión.
La mejor estrategia depende de la cantidad de detalles que el equipo quiere conservar.
Aplicación de requisitos a escala
A medida que aumenta la actividad de fusión, los equipos añaden controles para mantener las fusiones seguras y predecibles:
- Los conjuntos de reglas y las protecciones de ramas pueden requerir que la rama esté actualizada, confirmaciones firmadas, un historial lineal o comprobaciones de estado específicas antes de la fusión.
- Una cola de mezcla permite que una rama protegida con alto tráfico acepte muchas solicitudes de incorporación de cambios sin interrumpir. Prueba cada uno con la versión más reciente de la rama base y los combina en orden una vez superadas las comprobaciones. Cuando una rama usa una cola de mezcla, las opciones de combinación disponibles difieren de una combinación estándar.
Nota:
Las colas de combinación de solicitudes de incorporación de cambios están disponibles en cualquier repositorio público propiedad de una organización, o bien en repositorios privados propiedad de organizaciones que usan GitHub Enterprise Cloud. Consulte planes de GitHub.
Vincular fusiones al despliegue
La combinación suele ser el desencadenador que envía código. GitHub Actions puede ejecutar flujos de trabajo de implementación cuando un pull request se fusiona en una rama de lanzamiento o en la rama principal. Los entornos de implementación agregan otra capa de seguridad previa a la implementación: puede requerir revisores específicos, temporizadores de espera o restricciones de rama antes de que continúe una implementación y se muestran junto con las demás comprobaciones.
Recuperación después de una combinación
Aun con controles establecidos, algunas fusiones deben deshacerse. Puede revertir una solicitud de incorporación de cambios combinada para crear una nueva solicitud de incorporación de cambios que revierta los cambios. Tenga en cuenta que una solicitud de incorporación de cambios se puede marcar como combinada indirectamente en raras ocasiones, si sus confirmaciones llegan a la rama base a través de otra ruta de acceso. Esto puede eludir las protecciones de esa solicitud de extracción específica. Consulte Revertir un pull request y Fusiones de solicitudes de extracción.
Cerrar pull requests que no se van a fusionar
No todas las pull requests deben fusionarse. Si un cambio ya no es necesario o queda reemplazado por otro trabajo, puedes cerrar la solicitud de extracción sin fusionarla. El cierre mantiene la discusión y el historial de referencia al tiempo que señala que el cambio no avanzará.
Después de fusionar o cerrar una pull request, su rama de cabecera suele dejar de ser necesaria. Eliminar las ramas sin usar facilita navegar por el repositorio.