2010-10-27 9 views

Respuesta

72

parece algo particularmente útil para añadir a la orden del cubo: http://github.com/defunkt/hub o la gema github: http://github.com/defunkt/github-gem

Sugiero la presentación de un problema con los proyectos de pedirlo. Los chicos de Github son muy receptivos.

+6

La github-gema incluía un recurso para crear solicitudes de extracción para edades: 'gh solicitud-extracción [usuario] [rama]'. –

+4

¿Funciona sin que Github bifurque el repositorio primero, es decir, desde un clon directo del repositorio de origen? –

+0

@Holger Justo y cualquier otra persona: Eso simplemente crea el texto de una solicitud de extracción y no omite la necesidad de un fork en Github. No he encontrado una forma de evitarlo todavía. Tengo la intención de probar la utilidad 'pullr' publicada a continuación pronto. Consulte [aquí] (https://github.com/defunkt/github-gem/issues/19) para conocer el problema de las personas que solicitan soporte de solicitud de extracción completo desde github-gem. – mateor

14

Una búsqueda hombre como ...

man git | grep pull | grep request 

Da

git request-pull <start> <url> [<end>] 

Pero, a pesar del nombre, no estoy seguro de que esto hace lo que quiere. sugerencia de Holger parece funcionar:

ghi pull-request [user] [branch] 

pero tendrá que instalar el cliente github (GH) en primer lugar. En ubuntu esto es:

sudo apt-get install github-cli 
+3

bajo Ubuntu 11.10 el comando CLI Github es ahora ghi –

+1

Cuando intento esto me sale: > ghi pull- solicitud de error: comando de 'pull-solicitud' no se han aplicado estoy usando esto: https: // github. com/jsmits/github-cli –

+3

Esto genera un resumen de los cambios pendientes, no tiene nada que ver con una solicitud de extracción que se está emitiendo a través de Github – Flov

1

he utilizado esta herramienta para antes, aunque parece que no es necesario que haya un tema abierto en primer lugar, es súper útil y realmente agiliza el flujo de trabajo si utiliza el seguimiento de problemas GitHub. git open-pull y luego se envía una solicitud de extracción desde cualquier rama en la que se encuentre o seleccione. https://github.com/jehiah/git-open-pull

EDITAR: Parece que puede crear problemas sobre la marcha, por lo que esta herramienta es una buena solución.

25

Con la Hub command-line wrapper puede vincularlo a Git y entonces usted puede hacer git pull-request

Desde la página del manual del concentrador:

git pull-request [-f] [TITLE|-i ISSUE|ISSUE-URL] [-b BASE] [-h HEAD] 
      Opens a pull request on GitHub for the project that the "origin" remote points to. The default head of the pull request is the current branch. Both base and head of the pull request can be explicitly given in one of the following formats: "branch", "owner:branch", 
      "owner/repo:branch". This command will abort operation if it detects that the current topic branch has local commits that are not yet pushed to its upstream branch on the remote. To skip this check, use -f. 

      If TITLE is omitted, a text editor will open in which title and body of the pull request can be entered in the same manner as git commit message. 

      If instead of normal TITLE an issue number is given with -i, the pull request will be attached to an existing GitHub issue. Alternatively, instead of title you can paste a full URL to an issue on GitHub. 
+2

No sabía nada de Hub, está disponible a través de homebrew: 'brew install hub' Esta parece ser la respuesta correcta para los usuarios de mac. – wbarksdale

+0

//, ¿Hay algún sitio en línea al que pueda dirigir a las personas para obtener más información acerca de Hub? –

+0

@NathanBasanese Aquí: https://hub.github.com/^_^ –

6

terminé de hacer mi propia, me parece que funciona mejor las otras soluciones que existían.

https://npmjs.org/package/pullr

+5

Intenté haciendo pullr -n dentro del repositorio clonado. Me dio un error al abrir .../clonedRepo/undefined/.pullr-token-cache en Windows 7. Es posible que desee tener más documentación, como un ejemplo de uso? –

+0

//, Esto se ve bien. ¿Cómo podemos contribuir? –

38

Parece que este ahora es compatible fuera de la caja con el comando 'git request-pull' [-p] <start> <url> [<end>]

Se puede ver los documentos here

+6

//, ¿Eso funciona con GitHub, sin embargo? –

+3

@NathanBasanese Genera texto legible por humanos que describe la solicitud de extracción. Los [git docs] (http://git-scm.com/docs/git-request-pull) y [GitHub] (https://git-scm.com/book/ch5-2.html#Forked-Public -Project) book dile que envíes un correo electrónico al responsable del proyecto, alguien con privilegios de escritura en el repositorio compartido (posiblemente github). El mantenedor revisa el texto de la solicitud de extracción que envió (en lugar de usar el proceso de solicitud de extracción en línea de github). Pueden hacer un 'git pull' de la url y la rama indicadas en su solicitud de extracción para fusionar los cambios en su clon local e insertar estos cambios en github. – hobs

3

Esta respuesta es una forma alternativa para el uso actual de Git comando request-pull. Al utilizar este enfoque, no crearía la solicitud de extracción directamente desde la línea de comandos, sino que desde la línea de comandos haría que crear la solicitud de extracción en github fuera más rápido y más fácil al eliminar algunos pasos.

yo no uso el comando de solicitud-pull por dos razones:

  1. Me parece buscar el nombre del otro repositorio que usted quiere hacer la solicitud de extracción en contra, demasiado tiempo tomando.
  2. Se puede obtener una vista previa del texto con formato de reducción antes de crear una solicitud de extracción.

¿Por qué no automatizamos la creación de una pestaña para comparar la rama actual con otra utilizando la funcionalidad de comparación existente de github?

He creado un script de shell para eso, y ha creado un alias que apunta a que la secuencia de comandos shell:

git symbolic-ref HEAD | 
sed -e "s/^refs\/heads\///" | 
awk '{printf "https://github.com/USERACCOUNT/REPOSITORY-NAME/compare/%s?expand=1",$1}' | 
xargs open 

note: USERACCOUTN and REPOSITORY-NAME need to be changed to yours.

permite poner este script en un archivo llamado create-pull-request.sh. entonces podríamos simplemente crear un alias para ejecutar el script mediante la adición de esta línea a su archivo .bashrc:

alias makepullrequest="sh PATH-TO-THE-SCRIPT/create-pull-request.sh" 
1

He creado recientemente una herramienta que hace exactamente lo que quiere:

https://github.com/jd/git-pull-request

Automatiza todo en un solo comando, bifurcando el repositorio, empujando el PR, etc. ¡También admite actualizar el PR si necesita editarlo/corregirlo!

Cuestiones relacionadas