tipos tag tab remove practices notes etiquetas crear commits best git github pull-request git-fork

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



github release notes (6)

¿Cómo creo y / o envío una solicitud de extracción a otro repositorio alojado en GitHub?


(Además de la página oficial " Ayuda de GitHub ''Usar solicitudes de extracción'' ",
vea también " Bifurcación vs. Ramificación en GitHub ", " ¿Cuál es la diferencia entre el origen y la fuente en GitHub ")

Consejos de pareja en las solicitudes de extracción:

Suponiendo que primero ha bifurcado un repositorio , esto es lo que debe hacer en esa bifurcación que posee:

  • crear una rama : aislar sus modificaciones en una rama. No cree una solicitud de extracción desde el master , donde podría verse tentado a acumular y mezclar varias modificaciones a la vez.
  • reconfigure esa rama : incluso si ya hizo una solicitud de extracción desde esa rama, rebasándola sobre origin/master (asegurándose de que su parche aún funciona) actualizará la solicitud de extracción automáticamente (no es necesario hacer clic en nada)
  • actualice esa rama : si su solicitud de extracción se rechaza, simplemente puede agregar nuevos confirmaciones y / o rehacer su historial por completo: volverá a activar su solicitud de extracción existente.
  • "enfoque" esa rama : es decir, haga su tema "ajustado", no modifique miles de clases y la aplicación general, solo agregue o arregle una característica bien definida, manteniendo los cambios pequeños .
  • eliminar esa rama : una vez aceptada, puede eliminar esa rama de forma segura en su bifurcación (y git remote prune origin ). La GUI de GitHub le propondrá que elimine su sucursal en su página de solicitud de extracción.

Nota: para escribir la Solicitud de extracción en sí mismo, consulte " 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: consulte "¿ Conflictos de squash de Github desde la interfaz web en solicitud de extracción después de revisar los comentarios? ".

El mantenedor del repositorio puede optar por merge --squash esas confirmaciones de PR.

Después de una solicitud de extracción

Respecto al último punto, desde el 10 de abril de 2013, " Botón de combinación rediseñado ", la rama se eliminará automáticamente:

La eliminación de ramas después de fusionar también se ha simplificado.
En lugar de confirmar la eliminación con un paso adicional, eliminamos inmediatamente la rama cuando la elimina y proporcionamos un enlace conveniente para restaurar la rama en caso de que la necesite nuevamente .

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

solicitud de tracción frente a solicitud de extracción

Notas electrónicas para "repositorio" (sic)

<humour>

¡Eso (solicitud de extracción) ni siquiera está definido correctamente por GitHub!

Afortunadamente, una verdadera organización de noticias de negocios lo sabría, y hay una nota electrónica con el fin de reemplazar "pull-replace" por "e-note" :

Entonces, si su repositorio necesita una nota electrónica ... pregúntele a Fox Business . Ellos están en el saber.

</humour>


Comencé un proyecto para ayudar a las personas a realizar su primera solicitud de extracción de GitHub. Puedes hacer el tutorial práctico para hacer tus primeras relaciones públicas aquí

El flujo de trabajo es simple como

  • Tenedor del repositorio en github
  • Obtenga la URL de clonación haciendo clic en el botón de reproducción de clonación
  • Vaya a la terminal y ejecute git clone <clone url you copied earlier>
  • Haga una rama para los cambios que está haciendo git checkout -b branch-name
  • Hacer los cambios necesarios
  • Confirma tus cambios.
  • Presiona tus cambios a tu fork en GitHub git push origin branch-name
  • Vaya a su bifurcación en GitHub para ver el botón Compare and pull request
  • Haz click en él y da los detalles necesarios.

Para aprender cómo hacer una solicitud de extracción, simplemente seguí dos páginas de ayuda separadas en Github (enlazadas a continuación como puntos de viñetas). Los siguientes comandos de la línea de comandos son para la Parte 1 . La 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 : bifurque el repositorio de alguien: https://help.github.com/articles/fork-a-repo

    1. haga clic en el botón ''bifurcación'' en el repositorio al que desea contribuir, en este caso: el repositorio de 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 git clone->cd dwolla-php->git remote->git fetch para clonar su fork en algún lugar de su computadora (es decir, "copie / pegue", en este caso: third_party TimPeterson$ ) y sincronícelo con el master repo (Dwolla / dwolla-php)
    4. Realiza tus cambios en tu repositorio local.
    5. escriba la secuencia git add->git commit->git push anterior para enviar sus cambios al repositorio remoto, es decir, su fork en Github (tim-peterson / dwolla-php)
  • Parte 2 : realizar solicitud de extracción: https://help.github.com/articles/using-pull-requests

    1. Vaya a la página web de su fork en Github ( https://github.com/tim-peterson/dwolla-php )
    2. haga clic en el botón ''solicitar solicitud''
    3. asigne un nombre a la solicitud de extracción, complete los detalles de los cambios que realizó y haga clic en el botón Enviar.
    4. estas listo !!

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

  1. Igual que Tim y Farhan escribieron: Bifurca tu propia copia del proyecto:
  2. Después de unos segundos, serás redirigido a tu propia copia bifurcada del proyecto:
  3. Navegue hasta los archivos que necesita cambiar y haga clic en "Editar este archivo" en la barra de herramientas:
  4. Después de la edición, escriba algunas palabras que describan los cambios y luego "Confirmar cambios", así como en la rama maestra (ya que esta es solo su propia copia y no el proyecto "principal").
  5. Repita los pasos 3 y 4 para todos los archivos que necesita editar, y luego regrese a la raíz de su copia del proyecto. Allí, haga clic en el botón verde "Comparar, revisar ...":
  6. Finalmente, haga clic en "Crear solicitud de extracción" ... y luego en "Crear solicitud de extracción" nuevamente después de haber verificado nuevamente el título y la descripción de su solicitud:

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

  1. Bifurque un repositorio (al que desea realizar 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 por su nombre de usuario de github.
  2. Clone el repositorio a su máquina local. El software Github que instaló en su máquina local puede hacer esto por usted. Haga clic en el botón de clonar junto al nombre del repositorio.
  3. Realiza cambios locales / compromete a los archivos.
  4. sincronizar los cambios
  5. Vaya a su repositorio de bifurcaciones de github y haga clic en el botón verde "Comparar y revisar" junto al botón de derivación. (El botón tiene un icono - sin texto)
  6. Se abrirá una nueva página que muestra los cambios y luego hace clic en el enlace de solicitud de extracción, que enviará la solicitud al propietario original del repositorio que ha creado.

Me tomó un tiempo entender esto, espero que esto ayude a alguien.


Seguí las instrucciones de Tim Peterson pero creé una sucursal 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>