2011-09-01 19 views
25

Estoy usando una instalación detrás de firewall de Gitorious.¿Es posible crear solicitudes de fusión en Git puro desde la línea de comandos?

Puedo acceder a la aplicación web y crear una solicitud de extracción desde un clon y dirigirme al repositorio principal desde el que fue clonado.

Me gustaría poder hacer esto en la línea de comandos. Más específicamente, me gustaría poder abrir solicitudes de fusión desde la línea de comando de una rama a otra (en lugar de clonar para reporar semillas).

Como no estoy usando Github, no puedo usar Github specific tools or libraries. es posible?

Respuesta

4

No existe la "solicitud de combinación" en git. Entonces, si esto fuera posible, requeriría herramientas específicas de Gitorious. No es posible en Git puro.

52

El answer given by svick no es correcto. Es es posible.

Hay git request-pull que es parte de la suite Git. Usando esa herramienta de línea de comandos, podría crear una solicitud de extracción que podría enviarse por correo electrónico.

Ejemplo:
su origin sostiene una rama master. Ahora se crea una rama local de corrección de errores fix, implementar la corrección de errores y empuje que fix rama en origin:

git push origin fix:fix 

Entonces, ¿Quieres a alguien para fusionar los cambios realizados en la rama fix en master. Crear la solicitud de extracción con

git request-pull master origin 

Esto va a crear un texto con formato de la siguiente manera:

The following changes since commit <SHA of master>: 

    <commit message of SHA of mster> 

are available in the git repository at: 
    <repo location> fix 

<User Name> (<Number of Commits>): 
     <messages of the commits> 
     ... 

<changed files> 
... 
<file statistics> 

Si la petición de fusión deberá ir a alguien que no puede acceder a tu repositorio en el que empujó sus cambios, siempre hay la oportunidad de hacerlo con git format-patch.

Después de empujar su sucursal fix a origin (que ni siquiera necesita hacer eso), al tiempo que en la rama fix crear el parche usando

git format-patch master.. 

Esto creará un archivo de revisión para cada cometéis lo hizo en fix desde la bifurcación master. Se podría agrupar los ficheros generados con .patch

tar czf fix.tgz *.patch 

y luego enviar a alguien, por ejemplo, por correo electrónico para revisar y aplicar.

Para completar: aplicar los parches se puede hacer con git am.

+3

Usted parece haber perdido la pregunta real y sólo respondió el título ... Se establece claramente la solicitud de extracción tiene que ir en Gitorious, que tiene su * propio * mecanismo de solicitud de extracción. –

+6

Esto no cambia el hecho de que no existe el concepto de "solicitud de fusión" en git. – svick

+7

@Idan: El OP solicita una ** línea de comando ** forma de abrir solicitudes de fusión. Y eso es exactamente lo que estoy describiendo. – eckes

Cuestiones relacionadas