¿Solicitud de extracción sin bifurcación?

105

A continuación, se muestran los pasos de la contribución de código del tema " ¿Cómo puedo contribuir al código de otros en GitHub? "

  1. Bifurcar el proyecto
  2. Realice una o más confirmaciones limpias y bien comentadas en el repositorio. Puede crear una nueva rama aquí si está modificando más de una parte o característica.
  3. Realice una solicitud de extracción en la interfaz web de github.

¿Es posible realizar una solicitud de extracción sin bifurcar un repositorio?

Es bastante triste ver más de 20 repositorios en mi cuenta que se bifurcaron para algunas solicitudes de extracción. Entonces no tienen actividad y cero estrellas / seguidores. Parece que solo estoy copiando el código de alguien para un día negro.

Jaspe
fuente
¿Por qué querrías hacerlo?
3
Buena pregunta. Tampoco está claro actualizar esos 20 repositorios con el original (o eliminarlos).
Corey Alix

Respuestas:

95

Si no tiene acceso para crear ramas en ese repositorio, no hay forma de crear una solicitud de extracción sin bifurcar .

Ryan Bigg
fuente
8
¿Puede explicar cómo puede crear una solicitud de extracción si SÍ tiene acceso a las ramas de ese repositorio?
Bolinfest
13
GitHub tiene una buena guía al respecto: help.github.com/articles/creating-a-pull-request
Ryan Bigg
2
Solo un recordatorio de algo que puede que no sea tan claro para todos. Necesita crear una bifurcación para cada repositorio al que contribuya ... pero la creación de bifurcaciones en su bifurcación le permite trabajar con más de un PR a la vez para el repositorio ascendente. No necesita 20 bifurcaciones del mismo repositorio para contribuir con 20 PR.
JulioHM
24

Una vez que se aceptan sus solicitudes de extracción, puede eliminar el repositorio de forma segura .

Luego, simplemente clone directamente desde el repositorio original.

Si tiene otras solicitudes de extracción para realizar, debe realizarlas en su propia rama respectiva, lo que significa que puede eliminar de forma segura la rama que realizó para administrar una solicitud de extracción aceptada (como en " Mi solicitud de extracción se ha fusionado, qué hacer siguiente? ")

VonC
fuente
2
Para su información, github agregó recientemente un botón a las solicitudes de extracción combinadas para que sea fácil (e intuitivo) eliminar la rama de la solicitud de extracción: github.com/blog/1335-tidying-up-after-pull-requests
David M
10

Por definición, una solicitud de extracción implica una bifurcación a menos que tenga acceso de confirmación al repositorio de destino. Sin embargo, puedes hacer un par de cosas:

  1. Si usted no tiene acceso de confirmación, crear una rama y hacer su solicitud de extracción en contra de la nueva sucursal.
  2. Publique su parche en el cuerpo de un problema. Esta no es realmente la forma de GitHub, pero ciertamente funciona.
  3. Bifurque un repositorio, cree una solicitud de extracción y luego elimine la bifurcación una vez que la solicitud de extracción se haya fusionado o rechazado.

Si solo está tratando de evitar mantener repositorios que no está usando activamente, personalmente sugiero la opción # 3. Se adhiere al flujo de trabajo aceptado de GitHub sin saturar su tablero.

Todd A. Jacobs
fuente
Probablemente sea mejor ponerlo aquí: 4. Mantenga una segunda cuenta de Github solo para lidiar con estos escenarios de solicitud de extracción y olvido. No importará si esa cuenta tiene 20 repositorios inactivos, ya que no es la cuenta principal.
tanius
7

github admite el modelo de repositorio compartido

El modelo de repositorio compartido prevalece más con pequeños equipos y organizaciones que colaboran en proyectos privados. Todo el mundo tiene acceso de inserción a un único repositorio compartido y las ramas de temas se utilizan para aislar los cambios.

Las solicitudes de extracción son especialmente útiles en el modelo Fork & Pull porque proporcionan una forma de notificar a los encargados del mantenimiento del proyecto sobre cambios en su fork. Sin embargo, también son útiles en el modelo de repositorio compartido, donde se utilizan para iniciar la revisión del código y la discusión general sobre un conjunto de cambios antes de fusionarse en una rama principal.

Ya Zhuang
fuente
5
Tenga en cuenta que esto no explica cómo crear una solicitud de extracción en este modelo.
Bolinfest
0

Todavía necesitas esa frase: hub fork;git push -u $GIT_USER HEAD;hub pull-request

Anona112
fuente