2011-06-25 7 views
22

Recientemente comencé a administrar un proyecto en GitHub donde la gente ha estado enviando solicitudes de extracción. En lugar de combinarlos para dominar, me gustaría que la capacidad de:Combine las solicitudes de extracción de GitHub, posiblemente haciéndoles cambios primero

  1. Primera veterinario ellos para asegurarse de que funcionan realmente

  2. haciendo posible que algunos cambios de estilo antes de la fusión de dominar

¿Cómo puedo hacer esto?

¿Debe crear una rama separada, como "dev", e indicar a las personas que codifiquen eso antes de fusionarse con el maestro?

Respuesta

19

Hay una página de github help que detalla cómo realizar cambios en una solicitud de extracción mediante la extracción local de solicitudes de extracción.

lo que podría intentar es crear primero un mando para la solicitud de extracción remitente (estoy usando los ejemplos en la página anterior):

git remote add kneath git://github.com/kneath/jobs.git 

buscar a los cambios:

git fetch kneath 

Comprobar la rama de que se trate (ex maestro.):

git checkout kneath/master 

Vet ellos como usted quiera, ya que los códigos º en la voluntad habrá un código de solicitud de extracción. Ejecutar pruebas, etc.

fusionarlos en si es bueno ir:

git checkout master 
git merge kneath/master 

Además, aquí hay una muy buena página en git project management workflows el que se detallan los distintos flujos de trabajo que se pueden realizar en la integración de la colaboración.

+1

En realidad, no necesita tantos comandos. Haga clic en (i) en el lado izquierdo de la barra de combinación y le dará todos los comandos que necesita. – Tekkub

+0

Oh bien, como dije, acabo de tomarlos de la página de ayuda de github a la que me he vinculado. Sin embargo, difiero a su conocimiento ya que estoy seguro de que usted sabe más. –

20

Una manera más rápida de hacer las cosas con GitHub es utilizar esta característica de GitHub presentada por Zach Holman en su GitHub Secrets II Talk (video).

git fetch origin pull/id/head:name 

Dónde id es la solicitud de extracción Identificación, head es la rama remota (en el tenedor), y name es el nombre que desea dar a la sucursal local. Por ejemplo:

git fetch origin pull/12/head:pr 

Obtiene solicitud de extracción # 12 en una rama llamada pr.

Puede agregar esto como un alias en git si usa esto mucho.

+4

Buen truco. Sin embargo, la cadena 'head' es en realidad' head', no el nombre de la rama (f.i. 'master'). – whyscream

Cuestiones relacionadas