Cómo modificar la solicitud de extracción de Github?

Respuestas:

178

simplemente inserte más confirmaciones en la rama para la que es la solicitud. La solicitud de extracción recogerá esto luego

Ejemplo:

Si quieres haberte fusionado con master

  1. Empujas c1, c2, c3 a b
  2. entonces haces una nueva solicitud para b
  3. se revisa y necesitas más commits
  4. Empujas c11, c21, c31 a b
  5. La solicitud de extracción ahora muestra las 6 seis confirmaciones
Daij-Djan
fuente
66
¿Es posible agregar confirmaciones a esta solicitud de extracción por parte de otra persona, excepto el autor de esta solicitud de extracción?
skywinder
44
todo el mundo que empuja a la rama específica
Daij-Djan
@ Daij-Djan muy a menudo si alguien hace una solicitud de extracción, empuja a su propio tenedor del repositorio. ¿Es posible agregar commits a tal PR por personas que no tienen acceso de commit a su fork?
Maciek Łoziński
1
@skywinder tal vez podría verificar esta pregunta: ¿Es posible cambiar el código de otras personas en las solicitudes de extracción (Github)?
Maciek Łoziński
@ MaciekŁoziński la respuesta también es solo si "puedes [empujar] a la rama específica" :)
Daij-Djan
34

Solo tuve un commit en una solicitud de extracción, y solía git commit --amendactualizarlo. Luego hice un empuje forzado git push -fpara que mi confirmación modificada reemplazara la original. La solicitud de extracción seleccionó automáticamente la nueva confirmación. (En realidad, mostró ambas confirmaciones, pero cuando volví a cargar la página, la confirmación anterior desapareció).

Entonces, aunque generalmente no se recomienda un empuje forzado, puede ser útil para solicitudes de extracción. No se recomienda porque si alguien basa una confirmación sobre la tuya, tendrá que hacer una nueva versión después de tu cambio. Pero dado que nadie debería basar su trabajo en una solicitud de extracción bajo revisión, debería ser bastante seguro en esta situación.

Malvinoso
fuente
8

Si continúa realizando cambios y sigue avanzando hacia la misma rama, las confirmaciones refinadas se agregarán a la misma solicitud de extracción (a menos que su solicitud de extracción se haya fusionado). Esto podría hacer que la historia sea muy desordenada.

Una solución alternativa y una técnica que uso es la siguiente:

  1. Cree una nueva rama (arreglos) desde el repositorio (ascendente) y la rama (desarrollo) a la que desea enviar la solicitud de extracción haciendo:

    git branch arreglos aguas arriba / desarrollo

  2. Agregue sus confirmaciones refinadas directamente a esta rama recién creada.

    git commit -m "tu mensaje"

  3. Empuje esta rama a su propio control remoto bifurcado (podría llamarse origen).

  4. Compare y envíe una nueva solicitud de extracción con un historial de confirmación limpio.
  5. Además, es una buena idea eliminar su sucursal después de que la solicitud de extracción se haya fusionado.
  6. Y puede comentar y cerrar sus solicitudes de extracción anteriores.
usuario_19
fuente
1

También puedes usar github api .

ejemplo con rizo

curl --user "your_github_username" \
     --request PATCH \
     --data '{"title":"newtitle","body":"newbody",...}' \
     https://api.github.com/repos/:owner/:repo/pulls/:number

puede encontrar la lista detallada de datos en el documento de desarrollador de github

ejemplo: cambiar el nombre de mi solicitud de extracción

curl --user "jeremyclement" \
     --request PATCH \
     --data '{"title":"allows the control of files and folders permissions."}' \
     https://api.github.com/repos/Gregwar/Cache/pulls/9
hexaJer
fuente
Traté de cambiar de rama pero creo head/labely head/refno son editables.
hexaJer