Acerca de las fusiones de las solicitudes de extracción
En una solicitud de extracción, propones que los cambios que hayas hecho en una rama de encabezado se fusionen en una rama base. Por defecto, cualquier solicitud de extracción se puede fusionar en cualquier momento, a menos que la rama de encabezado esté en conflicto con la rama base. Sin embargo, puede que existan restricciones sobre cuándo puedes fusionar una solicitud de cambios en una rama específica. Por ejemplo, puede que solo puedas fusionar una solicitud de extracción en la rama predeterminada si están pasando las verificaciones de estado requeridas. Los administradores del repositorio pueden agregar restricciones como esta a las ramas mediante reglas de protección de rama. Para obtener más información, vea «Acerca de las ramas protegidas».
Como alternativa a las reglas de protección de ramas o a las reglas de protección de etiquetas, puede crear conjuntos de reglas. Los conjuntos de reglas tienen algunas ventajas sobre las reglas de protección de ramas y etiquetas, como estados, y una mejor detectabilidad sin necesidad de acceso de administrador. Puedes aplicar igualmente varios conjuntos de reglas al mismo tiempo. Para obtener más información, vea «Acerca de los conjuntos de reglas».
Puedes configurar una solicitud de cambios para que se fusione automáticamente cuando se cumplan todos los requisitos de fusión. Para obtener más información, vea «Fusionar una solicitud de cambios automáticamente».
Si la solicitud de incorporación de cambios tiene conflictos de combinación, o bien si quiere probar los cambios antes de la combinación, puede extraer del repositorio local la solicitud de incorporación de cambios y combinarla desde la línea de comandos.
No puedes fusionar un borrador de solicitud de cambios. Para más información sobre solicitudes de incorporación de cambios de borrador, consulta "Acerca de las solicitudes de incorporación de cambios".
El repositorio podría configurarse para que la rama de encabezado para una solicitud de cambios se borre automáticamente cuando fusiones una solicitud de cambios. Para obtener más información, vea «Administrar la eliminación automática de ramas».
Note
Si borras una rama de encabezado después de haber fusionado su solicitud de extracción, GitHub verificará cualquier solicitud de extracción abierta en el mismo repositorio que especifique la rama borrada como su rama base. GitHub actualiza automáticamente cualquier solicitud de extracción, cambiando su rama base a la rama base de la solicitud de extracción que se ha fusionado. Para más información, consulta "Acerca de las ramas".
Las solicitudes de incorporación de cambios se combinan con la opción--no-ff
, excepto las solicitudes de incorporación de cambios con confirmaciones de fusión mediante cambio de base o fusión mediante combinación con "squash", que se combinan mediante la opción de avance rápido.
Puedes vincular una solicitud de incorporación de cambios a una incidencia para mostrar que una corrección está en curso y para cerrar automáticamente la incidencia cuando un usuario fusione mediante combinación dicha solicitud. Para obtener más información, vea «Vincular una solicitud de cambios a una propuesta».
Si decide que no quiere que los cambios en una rama de tema se combinen con la rama ascendente, puede cerrar la solicitud de incorporación de cambios sin combinarla.
Combinación de una solicitud de incorporación de cambios
-
En el nombre del repositorio, haga clic en Solicitudes de incorporación de cambios.
-
En la lista "Pull Requests" (Solicitudes de extracción), haz clic en la solicitud de extracción que deseas fusionar.
-
Desplázate hasta la parte inferior de la solicitud de incorporación de cambios. Según las opciones de fusión habilitadas para tu repositorio, puedes:
-
Para combinar todas las confirmaciones en la rama base, haga clic en Combinar solicitud de incorporación de cambios. Si no se muestra la opción Combinar solicitud de incorporación de cambios, haz clic en el menú desplegable de combinación y selecciona Crear una confirmación de combinación.
-
Para combinar con "squash" las confirmaciones en una sola, haz clic en el menú desplegable de combinación, selecciona Combinar y fusionar y, después, haz clic en el botón Squash y combinar.
-
Fusiona mediante cambio de base las confirmaciones de forma individual en la rama base; para ello, haz clic en el menú desplegable de combinación, selecciona Fusionar mediante cambio de base y, después, haz clic en el botón Fusionar mediante cambio de base y combinar.
Note
Fusionar mediante cambio de base y fusionar mediante combinación siempre actualizarán la información de la persona que confirma el cambio y crearán nuevos SHA de confirmación. Para más información, vea "Acerca de las combinaciones de solicitudes de incorporación de cambios".
-
-
Si se te solicita, escribe un mensaje de confirmación o acepta el mensaje predeterminado.
Para información sobre los mensajes de confirmación predeterminados para las fusiones mediante combinación con "squash", consulta "Acerca de las fusiones de las solicitudes de extracción".
Note
El selector de correo electrónico no está disponible para las fusiones con rebase, las cuales que no crean una confirmación de fusión, o para fusiones mediante combinación con "squash", que acreditan al usuario que creó la solicitud de incorporación de cambios como autor de la confirmación de squash.
-
Haga clic en Confirm merge, Confirm squash and merge o Confirm rebase and merge.
-
Opcionalmente, elimine la rama. Esto mantiene ordenado el listado de ramas en tu repositorio.
Note
Para más información sobre GitHub CLI,consulte «Acerca del CLI de GitHub».
Para combinar una solicitud de incorporación de cambios, use el subcomando gh pr merge
. Reemplace pull-request
por el número, la dirección URL o la rama principal de la solicitud de incorporación de cambios.
gh pr merge PULL-REQUEST
Sigue los mensajes interactivos para completar la fusión. Para más información sobre los métodos de fusión mediante combinación que puedes elegir, consulta "Acerca de las fusiones de las solicitudes de extracción".
Como alternativa, puedes utilizar marcadores para omitir los mensajes interactivos. Por ejemplo, este comando combinará las confirmaciones en una sola con el mensaje de confirmación "my squash commit", fusiona la confirmación combinada en la rama base y luego borra la rama local y remota.
gh pr merge 523 --squash --body "my squash commit" --delete-branch