2012-06-16 19 views
29

Aquí está el escenario:¿Cómo se puede agregar confirmaciones a una solicitud de extracción de github de otra persona a su repositorio si no puede comprometerse con su sucursal?

Tengo un repo público A. Bob horquillas A, agrega algunos commits a Bob/master y envía una solicitud de extracción para combinar esos cambios en A/master. Me gustaría hacer algunos cambios en la solicitud de extracción propuesta antes de fusionarla nuevamente al A/master.

¿Cómo puedo hacer eso si no puedo presionar a Bob/master?

Respuesta

16

Existen varios flujos de trabajo que puede usar aquí. Algunos ejemplos son:

  1. Comente la solicitud de extracción y haga que Bob realice algunos cambios. Ver Pull Request Discussion para más información.

  2. Fusiona la solicitud de extracción en una rama diferente, luego realiza los cambios antes de fusionarte a la maestra. Debe hacer esto desde la línea de comando; ver Merging a Pull Request para obtener instrucciones paso a paso.

  3. Edite el parche antes de aplicarlo con git am. Ver Patch and Apply. Esta es probablemente la opción más flexible, pero también la más manual.

    git checkout master 
    curl http://github.com/<username>/<project_name>/pull/<patch_number>.patch 
    sensible-editor <patchfile> 
    git am <patchfile> 
    git push origin master 
    
+0

No es ideal, pero funciona, me gusta especialmente la opción 1. Con la opción 3, me gustaría tomar el crédito para los compromisos de Bob, ¿verdad? –

+0

Pregunta de seguimiento trasladada aquí: http://stackoverflow.com/questions/11066980/who-gets-credit-for-a-hand-edited-patch-file –

+0

Para realizar más cambios, no es necesario editar el parche a mano. Después de aplicar el parche con 'git am', puede editar los archivos de repos directamente y luego asignarlos con la bandera' --amend'. – Pete

2

puede simplemente tirar de su rama en tu repositorio local (no dentro de la interfaz gráfica de usuario github)

# make same work-in-progress branch and check it out 
$ git checkout -b WIP 

# pull his changes into WIP 
$ git pull https://github.com/... master 

y luego cambiar sin piedad a partir de ahí.

La otra opción sería usar el sistema de comentarios de github para convencerlo de que cambie su parche (de esa manera también podría conservar el crédito después de la fusión).

+7

¿No hay alguna forma de que ambos podamos mantener el crédito? una forma de que sus commits aparezcan enumerados en la solicitud de extracción ... –

+0

Si realiza commits y luego fusiona sus commits, ¿no se preservan todos los commits desde una perspectiva crediticia? – gregturn

+0

@gregturn: si cambias una confirmación, el autor cambia, pero mantiene el valor original si seleccionas una confirmación. –

2

Una solución es hacer un PR en Bob/master que contiene sus revisiones. Bob puede fusionar su PR en Bob/master; cuando fusiona la RP de Bob en A/master, contendrá las confirmaciones de Bob y sus compromisos.

Puede crear un PR desde cualquier bifurcación/bifurcación a cualquier otra bifurcación/bifurcación. Entonces, si Bob envía un PR de Bob/feature, simplemente cree un PR en Bob/feature.

Cuestiones relacionadas