Cómo hacer una solicitud de extracción de GitHub


¿Cómo puedo crear y/o enviar una solicitud de extracción a otro repositorio alojado en GitHub?

Author: tim peterson, 2013-02-04

6 answers

(Además de la página oficial "de Ayuda de GitHub 'Usando pull requests'",
ver también " Bifurcación vs. Ramificación en GitHub", "Cuál es la diferencia entre origin y upstream en GitHub")

Un par de consejos sobre pull-requests:

Suponiendo que usted tiene primero bifurcó un repositorio, esto es lo que usted debe hacer en ese tenedor que usted posee:

  • crea una rama: aísla tus modificaciones en una rama. No cree una pull request desde master, donde podría verse tentado a acumular y mezclar varias modificaciones a la vez.
  • rebase esa rama : incluso si ya hizo una solicitud de extracción desde esa rama, rebase encima de origin/master (asegurándose de que su parche siga funcionando) actualizará la solicitud de extracción automáticamente (sin necesidad de hacer clic en nada)
  • actualiza esa rama: si tu pull request es rechazada, simplemente puedes agregar nuevas confirmaciones, y / o rehace su historial completamente: activará su solicitud de extracción existente de nuevo.
  • "enfoca" esa rama: es decir, haz que su tema sea "apretado", no modifiques miles de clases y la aplicación all, solo agrega o arregla una característica bien definida, manteniendo los cambios pequeños.
  • eliminar esa rama: una vez aceptada, puede eliminar de forma segura esa rama en su bifurcación (y git remote prune origin). La GUI de GitHub te propondrá eliminar tu rama en tu pull-request pagina.

Nota: para escribir la solicitud de extracción en sí, ver "Cómo escribir la solicitud de extracción perfecta" (Enero de 2015, GitHub)


Marzo de 2016: Nueva opción de botón de combinación de relaciones públicas: ver " Github squash commits desde la interfaz web en la solicitud de extracción después de los comentarios de revisión?".

Squash

El mantenedor del repositorio puede elegir merge --squash esas confirmaciones PR.


Después de una solicitud de extracción

Con respecto a la último punto, desde el 10 de abril 2013, "Botón de fusión rediseñado", la rama se elimina para usted:

nuevo botón de fusión

También se ha simplificado la eliminación de ramas después de fusionar.
En lugar de confirmar la eliminación con un paso adicional, eliminamos inmediatamente la rama cuando la eliminas y proporcionamos un enlace conveniente para restaurar la rama en el caso de que la necesites de nuevo.

Que confirma la mejor práctica de eliminar la rama después de fusionar una solicitud de extracción.


Pull-request vs. request-pull


Notas electrónicas para" reposotory " (sic)

<humour>

¡Eso (pull request) ni siquiera está definido correctamente por GitHub!

Afortunadamente, una verdadera organización de noticias de negocios lo sabría, y hay una e-note para reemplazar pull-replace por 'e-note':

https://pbs.twimg.com/media/BT_5S-TCcAA-EF2.jpg:large

Así que si tus reposo tory necesita una nota electrónica... pregunte a Fox Business. Están en el saber.

</humour>

 219
Author: VonC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-04 17:37:32

Para aprender cómo hacer una solicitud de extracción, solo seguí dos páginas de ayuda separadas en Github (enlazadas a continuación como viñetas). Los siguientes comandos de línea de comandos son para Parte 1 . Parte 2 , la solicitud de extracción real, se realiza completamente en el sitio web de Github.

$ git clone https://github.com/tim-peterson/dwolla-php.git
$ cd dwolla-php
$ git remote add upstream https://github.com/Dwolla/dwolla-php.git
$ git fetch upstream
// make your changes to this newly cloned, local repo 
$ git add .
$ git commit -m '1st commit to dwolla'
$ git push origin master
  • Parte 1 : bifurcar el repositorio de alguien: https://help.github.com/articles/fork-a-repo

    1. haga clic en el botón 'fork' en el repositorio al que desea contribuir, en este caso: El repositorio PHP de Dwolla (Dwolla/dwolla-php)
    2. obtenga la URL de su bifurcación recién creada, en este caso: https://github.com/tim-peterson/dwolla-php.git (tim-peterson / dwolla-php)
    3. escriba la secuencia git clone->cd dwolla-php->git remote->git fetch anterior para clonar su bifurcación en algún lugar de su computadora (es decir, "copie/pegue" en, en este caso: third_party TimPeterson$) y sincronícela con el repositorio maestro (Dwolla/dwolla-php)
    4. realice los cambios en su repositorio local
    5. escriba la secuencia git add->git commit->git push anterior para empujar su cambios en el repositorio remoto, es decir, su bifurcación en Github (tim-peterson/dwolla-php)
  • Parte 2: hacer pull-request: https://help.github.com/articles/using-pull-requests

    1. vaya a la página web de su tenedor en Github ( https://github.com/tim-peterson/dwolla-php )
    2. haga clic en el botón' pull-request '
    3. dé un nombre a pull-request, complete los detalles de los cambios que realizó, haga clic en el botón enviar.
    4. estás hecho!!
 188
Author: tim peterson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-28 13:46:49

Para realizar una solicitud de extracción, debe realizar los siguientes pasos:

  1. Bifurca un repositorio (al que desea hacer una solicitud de extracción). Simplemente haga clic en el botón de bifurcación de la página del repositorio y tendrá un repositorio de github separado precedido con su nombre de usuario de github.
  2. Clona el repositorio en tu máquina local. El software Github que instalaste en tu máquina local puede hacer esto por ti. Haga clic en el botón clonar junto al nombre del repositorio.
  3. Hacer local cambios / confirmaciones en los archivos
  4. sincronizar los cambios
  5. ve a tu repositorio bifurcado de github y haz clic en el botón verde "Comparar y Revisar" además del botón rama. (El botón tiene icono - sin texto)
  6. Se abrirá una nueva página mostrando sus cambios y luego haga clic en el enlace pull request, que enviará la solicitud al propietario original del repositorio que bifurcó.

Me llevó un tiempo darme cuenta de esto, espero que esto ayude a alguien.

 68
Author: Farhan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-18 23:46:34

He comenzado un proyecto para ayudar a las personas a hacer su primera solicitud de extracción de GitHub. Puedes hacer el tutorial práctico para hacer tu primer PR aquí

El flujo de trabajo es tan simple como

  • Fork el repositorio en github
  • Obtenga la url de clon haciendo clic en el botón clone repo
  • Vaya a terminal y ejecute git clone <clone url you copied earlier>
  • Crea una rama para los cambios que estás haciendo git checkout -b branch-name
  • Hacer los cambios necesarios
  • Confirma tus cambios git commit
  • Empuje su cambios en tu bifurcación en GitHub git push origin branch-name
  • Ve a tu bifurcación en GitHub para ver un botón Compare and pull request
  • Haga clic en él y proporcione los detalles necesarios
 12
Author: sudo bangbang,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-02 03:45:13

Para aquellos de nosotros que tenemos un github.com cuenta, pero solo recibe un mensaje de error desagradable cuando escribimos " git " en la línea de comandos, aquí está cómo hacerlo todo en su navegador:)

  1. Igual que Tim y Farhan escribieron: Fork su propia copia del proyecto: Paso 1: Bifurcación
  2. Después de unos segundos, serás redirigido a tu propia copia bifurcada del proyecto: Paso 2
  3. Vaya a los archivos que necesita cambiar y haga clic en "Editar este archivo" en el barra: Paso 3: Editar un archivo
  4. Después de editar, escriba unas palabras describiendo los cambios y luego "Confirmar cambios", así como a la rama master (ya que esto es solo su propia copia y no el proyecto "principal"). Paso 4: Cambios de confirmación
  5. Repita los pasos 3 y 4 para todos los archivos que necesita editar, y luego vuelva a la raíz de su copia del proyecto. Allí, haga clic en el verde " Comparar, revisar..." botón: Paso 5: Comenzar a enviar
  6. Finalmente, haga clic en "Crear solicitud de extracción" ..y luego "Create pull request" de nuevo después de haber comprobado dos veces el encabezado y la descripción de su solicitud: introduzca la descripción de la imagen aquí
 11
Author: Sphinxxx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-08 01:32:38

Seguí las instrucciones de tim peterson pero creé una rama local para mis cambios. Sin embargo, después de empujar no estaba viendo la nueva sucursal en GitHub. La solución fue agregar-u al comando push:

git push -u origin <branch>
 3
Author: tamalet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-15 22:13:46