2012-09-30 21 views
39

Tengo un repositorio bifurcado desde GitHub que tiene algunas modificaciones. Sin embargo, en una determinada confirmación, se modificaron algunos archivos a los que deseo enviar una solicitud de extracción, dejando los otros archivos modificados fuera de la solicitud.Solicitud de extracción solo para ciertos archivos/commits

¿Las solicitudes de extracción se fusionan todas confirmaciones, o tengo que hacer algo especial para aislar este compromiso?

+1

Esto puede estar relacionado: [¿Cómo hacer git-cherry-pick solo cambios en ciertos archivos?] (Http://stackoverflow.com/q/5717026) – jww

+2

@jww Años después y 'git cherry-pick' se ha convertido absolutamente invaluable. Debería haberlo aprendido mucho antes que yo. – Qix

Respuesta

28

Una solicitud de extracción que se realiza de confirmaciones completas, debe dividir esta confirmación en dos confirmaciones separadas, una que contenga el cambio para poner en la solicitud de extracción, y la otra que contenga los otros cambios. Para hacer esto necesita git rebase -i, vea por ejemplo How can I split up a Git commit buried in history? para una buena explicación sobre cómo hacerlo.

Una vez que haya dividido el compromiso, mueva los que desea incluir en una rama de tema, consulte por ejemplo How to move certain commits to another branch in git?, pero depende si las confirmaciones que hacen su solicitud de extracción son secuenciales.

Luego, finalmente puede presionar a Github y crear la solicitud de extracción desde su rama de tema.

+3

Para el registro, 'git cherry-pick' es una herramienta invaluable. – Qix

+3

Veo que esta es la respuesta aceptada; pero, ¿dónde están exactamente los pasos a seguir para que uno pueda realizar cambios en un archivo en una solicitud de extracción que modifique varios archivos? – jww

+0

¿Qué sucede cuando usted es la persona que combina la solicitud y no realiza la solicitud? Esta herramienta es tan coja ... – jww

11

Peticiones de extracción combinan ramas. Entonces, si desea aislar algunas cosas para una solicitud de extracción, lo mejor es poner esos cambios en una rama separada.

La ventaja es que puedes cambiar la solicitud de extracción presionando los nuevos cambios en esa rama (incluso si pulsas -f si necesitas cambiar confirmaciones ya realizadas).

Cuestiones relacionadas