2011-12-09 15 views
99

Al abrir una solicitud de extracción en GitHub, todas las confirmaciones desde mi última petición y todos los otros nuevos se añaden automáticamente a esta solicitud. Parece que no puedo controlar qué confirmaciones se agregan y cuáles no. Cuando intento abrir otra solicitud de extracción, aparece el mensaje "¡Vaya! Ya hay una solicitud de extracción". ¿Hay alguna manera fácil de abrir varias solicitudes de extracción sin tener que perder el tiempo con la línea de comandos?¿Cómo abrir múltiples peticiones de tracción en GitHub

Respuesta

88

solicitudes y jalar se basan en una rama. La única forma de abrir una solicitud de extracción para varias confirmaciones es aislarlas en su propia sucursal y abrir las solicitudes de extracción desde allí.

+2

eso es bueno cool, pensé que era solo con el maestro. Entonces, ¿a qué te refieres es que puedo crear muchas ramas (es decir, las funciones de flujo de git) y hacer solicitudes de extracción para cada una de ellas ... ¡Voy a intentarlo! –

+6

Acabo de encontrar que la rama conserva el historial de las confirmaciones anteriores, por lo que una solicitud de extracción contra la cadena ascendente aún incluye todas las confirmaciones. –

+2

Hola @ grey-gheez, ¿has pensado qué hacer con esto? ¿Cómo crear RP aisladas sin mostrar los cambios de otras ramas? –

2

en realidad se puede hacer esto sin crear otra rama, pero se necesita un poco de jugar alrededor.
He aquí los pasos:

  1. identificar los dos cometen rangos que desea tirar. Esto es lo que usaré para un ejemplo:
    (otro/maestro) A -> B -> C -> D -> E (el tuyo/maestro)
    Digamos que quieres sacar B y C en una sola solicitud y D & E en otro.
  2. Realice una solicitud de extracción. Tener el lado izquierdo ("base") se comprometan A. Por el lado derecho ("cabeza"), introduzca el número de comprometerse de C.
  3. Escribir la descripción de la primera solicitud.
  4. Haga otra solicitud. Para la base, escriba el número de confirmación de C, y para el encabezado, ponga E (el suyo/maestro).
  5. Escribe la descripción.

Como lo veo, la solicitud de extracción ve el compromiso C como un punto de ramificación. O algo.

+0

Debe dejar other/master como el lado izquierdo, incluso si está agregando un número de confirmación del suyo/maestro. Además, este método no le permite agregar nuevos commits a la solicitud de fusión, en caso de que se necesiten más cambios. – frisco

+0

He publicado un seguimiento de este tipo de respuesta, en contraste con cierta información sobre Github, ver http://stackoverflow.com/questions/23159860 –

10

La manera más fácil que he encontrado para hacer esto es con el comando cubo (https://github.com/defunkt/hub).

Desde su tema rama ("característica" en este ejemplo) que desea crear una solicitud de extracción para, sólo puede funcionar:

git pull-request 

(recuerde que debe empujar a su rama de primera!)

Y se abrirá una nueva solicitud de extracción en GitHub para "YOUR_USER: feature".

Si ya ha creado un problema en GitHub, incluso se puede adjuntar una solicitud de extracción a ese tema ya existente (algo que no se puede hacer desde la interfaz web):

$ git pull-request -i 123 
[ attached pull request to issue #123 ] 
Cuestiones relacionadas