Un proyecto en GitHub del que tengo una bifurcación tiene una nueva solicitud de extracción que quiero incluir en mi bifurcación que el autor aún no ha incluido.
¿Hay una manera simple de aplicar la solicitud de extracción de otros tenedores en mi tenedor? ¿Hay algo más aquí que me estoy perdiendo?
git
github
pull-request
Puerro
fuente
fuente
Respuestas:
Puede hacerlo manualmente con bastante facilidad:
agregue la otra bifurcación como control remoto de su repositorio:
buscar los compromisos de su repositorio
Entonces tiene dos opciones para aplicar la solicitud de extracción (si no desea elegir la selección 1.)
Si no le importa aplicar también las confirmaciones eventuales que se han agregado entre el origen y la solicitud de extracción, puede cambiar el nombre de la rama en la que se formó la solicitud de extracción
Si solo desea las confirmaciones en la solicitud de extracción, identifique su SHA1 y haga
fuente
git pull URL branchname
Actualización: a través de la página web
También puede hacerlo a través de la página web de github.
Supongo que ya debería tener una bifurcación (
MyFork
) del repositorio común (BaseRepo
) que tiene la solicitud de extracción pendiente de una bifurcación (OtherFork
) que le interesa.OtherFork
) que ha iniciado la solicitud de extracción que desea ingresar a su bifurcación (MyFork
)OtherFork
OtherFork
rama adecuada también. Seleccione en el lado izquierdo como la horquilla base su horquilla (MyFork
) ( IMPORTANTE ).View pull request
debería cambiar aCreate pull request
. Haz clic aquí.Ahora debe tener una solicitud de extracción pendiente en su fork (
MyFork
), que simplemente puede aceptar.fuente
OtherFork
el menú desplegable "comparar" de la derecha. Luego seleccioné el lado izquierdo como la horquilla base como se describió anteriormente, ya que pude crear la solicitud de extracción.Como dijo Tekkub anteriormente, solo puede tirar de la rama directamente. La mayoría de las veces con GitHub, la rama es simplemente "maestra" en la bifurcación del proyecto del usuario solicitante.
Ejemplo:
git pull https://github.com/USER/PROJECT/ BRANCH
Y como ejemplo práctico:
Digamos que bifurcó un proyecto github llamado safaribooks y existe la siguiente solicitud de extracción, en el proyecto de origen, que desea poner en su tenedor:
Luego, en la carpeta del proyecto clonado de tu fork, ejecuta:
fuente
git pull https://github.com/{upstream/project} refs/pull/{id}/head
en su lugar.Las solicitudes de extracción para el proyecto pueden provenir de muchos autores diferentes (tenedores), y probablemente no desee un control remoto separado para cada tenedor. Además, no desea hacer suposiciones sobre la rama que el autor usó al enviar la solicitud de extracción, o qué más podría estar en la rama maestra del autor. Por lo tanto, es mejor hacer referencia a la solicitud de extracción como aparece en el repositorio ascendente, en lugar de como aparece en los otros tenedores.
Paso 1:
Probablemente ya haya realizado este paso, pero si no, querrá un control remoto definido para el proyecto ascendente. La URL es la URL de clonación del proyecto que bifurcó. Más información en Configuración de un control remoto para una bifurcación y Sincronización de una bifurcación .
upstream
es el nombre que le está dando al control remoto, y si bien puede ser cualquier cosa,upstream
es el nombre convencional.Paso 2:
... donde
{id}
está el número de solicitud de extracción.upstream
es el nombre del control remoto desde el cual extraer, es decir, simplemente "aguas arriba" si siguió exactamente el paso 1 También puede ser una URL, en cuyo caso puede omitir el paso 1.Paso 3:
Escriba un mensaje de confirmación para la confirmación de fusión. Puede mantener el valor predeterminado, aunque le recomiendo dar un buen resumen de una línea con el número de solicitud de extracción, el problema que soluciona y una breve descripción:
fuente
git pull upstream refs/pull/{id}/head
para obtener los commits en su repositorio local, luego hacer referencia a ellos comoFETCH_HEAD
(por ejemplo,git log ..FETCH_HEAD
para ver qué hay en élgit merge FETCH_HEAD
)Alguna información más detallada que funcionó para mí.
Mi archivo .git / config para el repositorio bifurcado se ve así:
Luego ejecute "git fetch source", que luego enumeró todas las solicitudes de extracción del repositorio bifurcado.
Y luego para combinar en una solicitud de extracción específica, ejecute "git merge master origin / pr / 67"
fuente
refs/pull/
espacio de nombres remoto de solo lectura específico de GitHub .smartgit.branch.otherRefs=notes;pull
a smartgit.properties según syntevo.com/doc/display/SG/System+Properties ; también puede combinarlas desde allí .Lo que haría es lo siguiente;
Ahora he fusionado los cambios en una rama de prueba, llamada
test_fork
. Para que cualquier cambio no ensucie mi árbol.Opcionalmente, puede usar cherry-pick como se describió anteriormente para elegir un commit particular si eso es más preferible.
Viajes felices :)
fuente
Utilizo un útil script dandy para esto. Ejecuto el script escribiendo:
y obtiene todas las solicitudes de extracción de la bifurcación aguas arriba.
Para crear el script, haga un archivo
~/bin/git-prfetch
.El archivo debe contener lo siguiente:
Asegúrese de que su ruta incluya el script configurando:
Puede agregar este archivo
~/.bashrc
para que el cambio sea permanente.Ahora, asegúrese de agregar la bifurcación de la que desea obtener las solicitudes de extracción:
Y entonces
fuente