¿Cómo creo y / o envío una solicitud de extracción a otro repositorio alojado en GitHub?
¿Cómo creo y / o envío una solicitud de extracción a otro repositorio alojado en GitHub?
Respuestas:
(Además de la página oficial " Ayuda de GitHub 'Uso de solicitudes de extracción' ",
consulte también " Bifurcación frente a bifurcación en GitHub ", " ¿Cuál es la diferencia entre el origen y el flujo ascendente en GitHub ")
Suponiendo que primero haya bifurcado un repositorio , esto es lo que debe hacer en ese tenedor que posee:
master
donde pueda tener la tentación de acumular y mezclar varias modificaciones a la vez.origin/master
(asegurándose de que su parche siga funcionando) actualizará la solicitud de extracción automáticamente (no es necesario hacer clic en nada)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í, 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 "¿ Confirmaciones de squash de Github desde la interfaz web en la solicitud de extracción después de comentarios de revisión? ".
El mantenedor del repositorio puede elegir merge --squash
esos compromisos de relaciones públicas.
En cuanto al último punto, desde el 10 de abril de 2013, " Botón de combinación rediseñado ", la rama se elimina por usted:
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 elimine 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.
la solicitud de extracción no es un término oficial "git".
Git usa el request-pull
comando (!) Para crear una solicitud de fusión:
"resume los cambios entre dos confirmaciones a la salida estándar e incluye la URL dada en el resumen generado".
Github lanza su propia versión desde el primer día (febrero de 2008) , pero rediseñó esa característica en mayo de 2010 , afirmando que:
Pull Request = Compare View + Issues + Commit comments
<humour>
¡Esa (solicitud de extracción) ni siquiera está definida correctamente por GitHub!
Afortunadamente, una verdadera organización de noticias de negocios lo sabría, y hay una nota electrónica para reemplazar pull-replace por 'e-note' :
Así que si sus repos o toria necesita un e-nota ... pedir Fox Business . Ellos están en el saber.
</humour>
branch
vs. master
parece crítica para tomar la respuesta de mi / Github de una solución teórica a algo que uno realmente usaría.
git pull --rebase upstream/master
está bien.
Para aprender cómo hacer una solicitud de extracción, acabo de seguir dos páginas de ayuda separadas en Github (enlazadas a continuación como viñetas). Los siguientes comandos de línea de comando 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 : bifurcar el repositorio de alguien: https://help.github.com/articles/fork-a-repo
git clone->cd dwolla-php->git remote->git fetch
secuencia anterior para clonar el tenedor en algún lugar de su computadora (es decir, "copiar / pegar", en este caso third_party TimPeterson$
:) y sincronizarlo con el repositorio maestro (Dwolla / dwolla-php)git add->git commit->git push
secuencia anterior para enviar sus cambios al repositorio remoto, es decir, su bifurcación en Github (tim-peterson / dwolla-php)Parte 2 : hacer solicitud de extracción: https://help.github.com/articles/using-pull-requests
Tims-MacBook-Pro:third_party TimPeterson$
porque este es un tutorial para principiantes y esas indicaciones ayudan a orientar al usuario.
git fetch upstream
, ¿no necesita fusionar los cambios aguas arriba con su copia local, utilizando git checkout master
entonces git merge upstream/master
?
Para realizar una solicitud de extracción, debe realizar los siguientes pasos:
Me tomó un tiempo entender esto, espero que esto ayude a alguien.
Comencé 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 simple como
git clone <clone url you copied earlier>
git checkout -b branch-name
git commit
git push origin branch-name
Compare and pull request
botónPara 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í está cómo hacerlo todo en su navegador :)
Seguí las instrucciones de tim peterson pero creé una rama local para mis cambios. Sin embargo, después de presionar, no estaba viendo la nueva sucursal en GitHub. La solución fue agregar -u al comando push:
git push -u origin <branch>
tim-peterson
el segundo esDwolla
Escribí un programa bash que hace todo el trabajo de configurar una rama de relaciones públicas para usted. Realiza una bifurcación si es necesario, se sincroniza con el flujo ascendente, configura el control remoto ascendente, etc. y solo necesita confirmar sus modificaciones, enviar y enviar un RP.
Así es como lo ejecutas:
github-make-pr-branch ssh your-github-username orig_repo_user orig_repo_name new-feature
Encontrará el programa aquí y su repositorio también incluye una guía paso a paso para realizar el mismo proceso manualmente si desea comprender cómo funciona, y también información adicional sobre cómo mantener su rama de características actualizada. fecha con el maestro ascendente y otros tidbits útiles.
La solicitud de extracción de GitHub más simple es de la interfaz web sin usar git.
Haz clic en el ícono de lápiz ,
busque texto cerca de la ubicación, realice las ediciones que desee y luego obtenga una vista previa para confirmar. Dele al cambio propuesto una descripción de hasta 50 caracteres y, opcionalmente, una descripción extendida, luego haga clic en el botón Proponer cambio de archivo .
Si está leyendo esto, no tendrá acceso de escritura al repositorio (carpetas de proyectos), por lo que GitHub creará una copia del repositorio (en realidad una rama) en su cuenta. Haga clic en el botón Crear solicitud de extracción .