remote - git tag remove
¿Cómo aplicar solicitudes de extracción en sentido ascendente no combinadas de otras bifurcaciones a mi horquilla? (6)
Actualización: A través de la página web
También puedes 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.
- Vaya a la bifurcación (
OtherFork
) que ha iniciado la solicitud de extracción que desea ingresar a su bifurcación (MyFork
) - Ir a la página de solicitudes de
OtherFork
deOtherFork
- Haga clic en nueva solicitud de extracción
- Las solicitudes de extracción pendientes deben ofrecerse. Recuerde seleccionar la rama adecuada de
OtherFork
también. Seleccione en el lado izquierdo como la horquilla de base de su horquilla (MyFork
) ( IMPORTANTE ). - Ahora la opción de
View pull request
debería cambiar aCreate pull request
. Haga clic en este
Ahora debería tener una solicitud de extracción pendiente en su bifurcación ( MyFork
), que simplemente puede aceptar.
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 realizado.
¿Hay una forma sencilla de aplicar la solicitud de extracción de otras horquillas a mi horquilla? ¿Hay algo más aquí que me esté perdiendo?
Alguna información más detallada que me funcionó.
Mi archivo .git / config para el repositorio bifurcado se ve así:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = false
[remote "origin"]
url = [email protected]:litzinger/angular-carousel.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
rebase = true
[remote "source"]
url = git://github.com/revolunet/angular-carousel.git
fetch = +refs/heads/*:refs/remotes/source/*
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
Luego ejecute "git fetch source", que luego enumera todas las solicitudes de extracción del repositorio bifurcado.
* [new ref] refs/pull/54/head -> origin/pr/54
* [new ref] refs/pull/67/head -> origin/pr/67
* [new ref] refs/pull/69/head -> origin/pr/69
* [new ref] refs/pull/71/head -> origin/pr/71
Y luego, para fusionar en una solicitud de extracción específica, ejecute "git merge master origin / pr / 67"
Como dijo Tekkub anteriormente, puedes jalar la rama directamente. La mayoría de las veces, con GitHub, la sucursal es simplemente "maestra" en la bifurcación del proyecto del Usuario solicitante.
Ejemplo: git pull https://github.com/USER/PROJECT/ BRANCH
Las solicitudes de extracción para el proyecto pueden provenir de diferentes autores (forks), y probablemente no desee un control remoto separado para cada fork. 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 haber en la rama principal 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 las otras bifurcaciones.
Paso 1:
git remote add upstream <url>
Probablemente ya hayas hecho este paso, pero si no, querrás un control remoto definido para el proyecto en sentido 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 aunque puede ser cualquier cosa, upstream
es el nombre convencional.
Paso 2:
git pull upstream refs/pull/{id}/head
... donde {id}
es el número de solicitud de extracción. upstream
es el nombre del control remoto desde el que se debe 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:
Merge PR#42, fixing VIM-652, support for mapping arbitrary IDEA actions
Lo que yo haría es lo siguiente;
git checkout master
git remote add #NAME# #ADDRESS TO REPO#
git fetch #USERNAME#
git checkout -b test_fork
git rebase #NAME#/#BRANCH#
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 describe anteriormente para elegir un compromiso en particular, si eso es más preferible.
Viajes felices :)
Puedes hacerlo manualmente con bastante facilidad:
agrega la otra bifurcación como control remoto de tu repositorio:
git remote add otherfork git://github.com/request-author/project.git
buscar los compromisos de su repo
git fetch otherfork
Tiene dos opciones para aplicar la solicitud de extracción (si no desea elegir la opción 1).
Si no le importa aplicar también las confirmaciones eventuales que se agregaron entre el origen y la solicitud de extracción, puede simplemente volver a escribir la rama en la que se formó la solicitud de extracción
git rebase master otherfork/pullrequest-branch
Si solo desea las confirmaciones en la solicitud de extracción, identifique su SHA1 y haga
git cherry-pick <first-SHA1> <second-SHA1> <etc.>