¿Cómo modificar una solicitud de extracción en GitHub para cambiar la rama de destino para fusionar?

117

Tengo una solicitud de extracción que solicita una fusión en el maestro desde mi rama, pero el propietario quiere que cambie la solicitud para fusionarla en una rama diferente de mi rama.

es posible? ¿Cuáles son las posibles soluciones?

Moriarty
fuente

Respuestas:

137

Actualización de agosto de 2016: Cambiar la rama base de una solicitud de extracción finalmente permite cambiar esa rama.
(Y esto cierra el número 18 , que tenía 3 años y más de 1500 comentarios)

Después de haber creado una solicitud de extracción, puede modificar la rama base para que los cambios en la solicitud de extracción se comparen con una rama diferente.

ingrese la descripción de la imagen aquí


Respuesta original:

Dado que un PR no se puede editar en términos de rama (ver más abajo), la forma más fácil sería:

  • crear una nueva sucursal local en la parte superior de su sucursal actual
  • empuja esa nueva rama
  • haga un nuevo RP con el destino correcto.
  • cerrar el PR anterior
  • hacer referencia a la solicitud de extracción "antigua" de la nueva; p.ej. Supersedes #123(como comenta Rivera a continuación )

(respuesta original, válida solo al crear el PR )

Puede intentar elegir otra rama base , como en " Cambiar el rango de la rama y el repositorio de destino " (haciendo clic en el Editbotón en la parte superior de una página de relaciones públicas)

https://github-images.s3.amazonaws.com/help/pull_requests/pull-request-review-edit-branch.png

La forma más sencilla de pensar en el rango de ramas es la siguiente:

  • la rama base es donde cree que se deben aplicar los cambios,
  • la rama principal es la que le gustaría que se aplicara.

Cambiar el repositorio base cambia a quién se notifica la solicitud de extracción.
Todos los que puedan enviar al repositorio base recibirán una notificación por correo electrónico y verán la nueva solicitud de extracción en su panel de control la próxima vez que inicien sesión.

Si selecciona como rama base la que desea el mantenedor original (el propietario), su RP debe fusionarse desde su rama (sin cambios) a la nueva rama base.

VonC
fuente
@Moriarty No tengo un PR en progreso, pero como creador del PR, ¿no ves el botón Editar una vez que se envía tu PR?
VonC
3
Lo hago, pero eso solo me permite modificar el nombre del PR. Supongo que no puede cambiar directamente la combinación de relaciones públicas en una rama al enviarla. Me pregunto si hay una alternativa (forma de fusionar un PR en otra rama independientemente).
Moriarty
2
Hay una solicitud de función abierta para poder cambiar la rama de destino de un PR: github.com/isaacs/github/issues/18
Jason Antman
1
También es una buena idea hacer referencia a la solicitud de extracción "antigua" de la nueva (por ejemplo, Reemplaza # 123).
Rivera
1
@Shimmy No lo creo, no desde la GUI web.
VonC
6

Si su sucursal está (todavía) disponible de forma remota, no tiene que crear una nueva sucursal localmente.

  • Seleccione su rama (que contiene los cambios que está enviando) ya sea directamente desde el menú desplegable o en "# ramas" ( https://github.com/account/project/branches ).

  • Haga clic en "Nueva solicitud de extracción". Esto le permite elegir una nueva rama base (objetivo).

Aquí hay una captura de pantalla de la nueva interfaz de Github: ingrese la descripción de la imagen aquí

Puedo enviar un PR de rama UXcontra cualquier bifurcación / rama --- no importa si envié previamente un PR de rama UX.

mkcor
fuente
1
El botón verde "Nueva solicitud de extracción" se mueve a la página web de la lista de relaciones públicas, en la esquina superior derecha.
Golden Thumb
No estoy seguro de lo que quiere decir con "se movió", pero sí, puede encontrar el botón verde "Nueva solicitud de extracción" en ambos lugares.
mkcor
4

Ahora puede: https://github.com/blog/2224-change-the-base-branch-of-a-pull-request

"Ahora puede cambiar la rama base de una solicitud de extracción abierta. Después de haber creado una solicitud de extracción, puede modificar la rama base para que los cambios en la solicitud de extracción se comparen con una rama diferente. Al cambiar la rama base de su solicitud de extracción original en lugar de abrir una nueva con la rama base correcta, podrá mantener un trabajo y una discusión valiosos ".

MK.
fuente
2

Tienes que crear una nueva solicitud de extracción como se menciona en el gibhub doc LINK

  1. Primero seleccione New Pull request
  2. en el compare pagelado izquierdo, seleccione el target branchque desea presionar y en el lado derecho seleccione branch you already pushed.
  3. Actualice los detalles de su nuevo PR.
  4. Crea el PR
Ani Thettayil
fuente
-4

Es bastante simple. Simplemente haga clic en el PR para el que desea cambiar su rama base. Busque el botón "Cerrar solicitud de extracción" cerca de la parte inferior de la página web. Ahora puede volver a crear un nuevo PR normalmente; asegúrese de seleccionar la rama base correcta esta vez.

Pulgar dorado
fuente
No veo por qué se rechaza esto. Esto funcionó totalmente bien para mí.
Wilt
3
No voté en contra. Pero veo que esta respuesta simplemente repite respuestas anteriores existentes (y lo hace con menos calidad).
Lars Blumberg
@LarsBlumberg Si lee con atención, debería notar que no es una repetición, aunque puede haber algunas superposiciones. Para mí, si (n -1) pasos, en lugar de n pasos, pueden resolver el problema, vale la pena compartirlo :-)
Golden Thumb
2
Si (n-1) pasos omiten pasos útiles, como cerrar el antiguo RP y hacer referencia al nuevo, no veo valor en repetir un subconjunto de pasos de una respuesta ya existente. Especialmente cuando la lista de menos pasos es más difícil de leer debido a la falta de un formato adecuado.
Lars Blumberg