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


He abierto una solicitud de extracción a un proyecto. El encargado ha decidido aceptarlo, pero me ha dicho que modifique algunos contenidos.

¿Cómo puedo hacerlo? Si debo mantener el hash de confirmación sin cambios, ¿cómo puedo hacerlo?

Author: Fabrício Matté, 2013-05-25

4 answers

Simplemente envía más confirmaciones a la rama para la que se solicita. La solicitud de extracción recogerá esto entonces

Ejemplo:

Si desea que b se fusione en master

  1. Se presiona c1,c2, c3 a b
  2. entonces usted hace una nueva solicitud para b
  3. se revisa y necesita más confirmaciones
  4. Se presiona c11,c21, c31 a b
  5. La solicitud de extracción ahora muestra las 6 seis confirmaciones
 127
Author: Daij-Djan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-25 09:34:56

Acabo de tener un commit en una pull request, y usé git commit --amend para actualizarlo. Luego hice un force push con git push -f para que mi commit modificado reemplazara al original. La pull request automáticamente recogió la nueva confirmación. (En realidad mostró ambas confirmaciones, pero cuando volví a cargar la página, la antigua confirmación se había ido.)

Por lo tanto, aunque un push forzado generalmente no se recomienda, puede ser útil para las solicitudes de extracción. No se recomienda porque si alguien basa un commit en la tuya, entonces lo hará tienes que hacer una rebase después de tu cambio. Pero dado que nadie debería basar su trabajo en una solicitud de extracción de revisión insuficiente, debería ser bastante seguro en esta situación.

 23
Author: Malvineous,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-28 08:28:02

Si continúa haciendo cambios y sigue empujando a 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 la historia muy desordenada.

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

  1. Cree una nueva rama (correcciones) desde el repositorio (upstream) y la rama (develop) a la que pretende enviar la solicitud de extracción haciendo:

    Correcciones de rama de Git upstream / develop

  2. Agrega tus 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 origin).

  4. Compara y envía una nueva pull request con un historial de confirmaciones limpio.
  5. Además, es una buena idea eliminar su rama después de que la solicitud de extracción se haya fusionado.
  6. Y puedes comentar y cerrar tus solicitudes de extracción anteriores.
 6
Author: user_19,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-29 18:08:36

También puedes usar github api.

Ejemplo con curl

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

Puedes encontrar la lista detallada de datos en github developer doc

Ejemplo: cambiar el nombre de mi pull request

curl --user "jeremyclement" \
     --request PATCH \
     --data '{"title":"allows the control of files and folders permissions."}' \
     https://api.github.com/repos/Gregwar/Cache/pulls/9
 1
Author: Jer42,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-27 14:47:14