Me gustaría consultar una solicitud de extracción creada anteriormente (creada a través de la interfaz web de GitHub). Busqué y encontré diferentes lugares donde un refs / pull o refs / pull / pr
Pero cuando agrego fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
al archivo de configuración de git y hago una búsqueda de git
¿Qué estoy haciendo mal? ¿Debería GitHub crear automáticamente el material pull / xyz, o tengo que configurar algo?
git
github
pull-request
git-checkout
GarfieldKlon
fuente
fuente
Respuestas:
Para buscar un PR remoto en su repositorio local,
donde
ID
está el id de solicitud de extracción yBRANCHNAME
es el nombre de la nueva rama que desea crear. Una vez que haya creado la rama, simplementeConsulte la documentación oficial de GitHub para obtener más información.
fuente
git fetch origin pull/1/head:githubusername
lo que esperabaBRANCHNAME
es lo que quieras nombrar a la sucursal. Supongo que trató de usar un nombre que ya existía (por ejemplomaster
) y que no funcionó, por lo que probó su nombre de usuario, que funcionó, porque no era una rama con ese nombre. Quizás no entiendo lo que estabas diciendo.origin
apunta a su bifurcación yupstream
, al repositorio original (siguiendo help.github.com/articles/configuring-a-remote-for-a-fork , por ejemplo). Asegúrese de cambiarorigin
aupstream
en el comando mencionado, si desea obtener la solicitud de extracción del repositorio original.Esto se obtendrá sin que tenga que nombrar una rama:
¿Cómo obtengo una solicitud de extracción específica en mi máquina?
fuente
Esa esencia describe lo que sucedió cuando haces una búsqueda de git:
Tiene varios scripts enumerados en los problemas 259 para automatizar esa tarea.
Los git-extras proyecto propone el comando
git-pr
(implementado en PR 262 )git-pr
(1) - Comprueba una solicitud de extracción localmentefuente
Prefiero buscar y pagar sin crear una sucursal local y estar en estado HEAD separado . Me permite verificar rápidamente la solicitud de extracción sin contaminar mi máquina local con ramas locales innecesarias.
git fetch upstream pull/ID/head && git checkout FETCH_HEAD
dónde
ID
seupstream
ha creado una ID de solicitud de extracción y dónde se ha creado la solicitud de extracción original (podría serorigin
, por ejemplo).Espero que ayude.
fuente
Haciendo referencia a la respuesta de Steven Penny, es mejor crear una rama de prueba y probar el PR. Así que esto es lo que harías.
git checkout -b test
git pull origin pull/939/head:test
Ahora, puede probar de forma segura los cambios en esta rama de prueba local (en este caso, prueba con nombre ) y una vez que esté satisfecho, puede fusionarlo como siempre desde GitHub.
fuente
test
sucursal y ENTONCES tiraría del PR, de esa manera no necesito restaurar las sucursales localmente cuando haya terminado; Acabo de deshacerme del árbol de trabajo. De hecho, NUNCA solocheckout -b
más: siempre creo un árbol de trabajo y luego me ramifico. El disco es barato. Por supuesto, tengo un script que hace esto; No escribo todos los comandos necesarios individualmente.Si está utilizando Github.com, vaya a "Solicitudes de extracción", haga clic en la solicitud de extracción correspondiente y luego haga clic en el enlace "instrucciones de la línea de comandos":
fuente
Puede usar el
git config
comando para escribir una nueva regla.git/config
para obtener solicitudes de extracción del repositorio:Y luego solo:
fuente
El problema con algunas de las opciones anteriores es que si alguien empuja más confirmaciones al RP después de abrir el RP, no le darán la versión más actualizada. Para mí, lo que funcionó mejor es ir al RP y presionar 'Comprometerse', desplazarse hacia abajo para ver el hash de confirmación más reciente y luego simplemente usar git checkout, es decir
git checkout <commit number>
en el ejemplo anterior
git checkout 0ba1a50
fuente
git fetch origin pull/ID/head:BRANCHNAME
enfoque mencionado en stackoverflow.com/a/30584951/659732 . Gracias por la solucion!Estoy usando hub, una herramienta de github: https://github.com/github/hub
Con el hub verificar una solicitud de extracción localmente es un poco fácil:
fuente
Para Bitbucket, debe reemplazar la palabra
pull
apull-requests
.Primero, puede confirmar el estilo de URL de solicitud de extracción mediante un
git ls-remote origin
comando.Como puede ver, es en
refs/pull-requests/1503/from
lugar derefs/pull/1503/from
Luego puede usar los comandos de cualquiera de las respuestas.
fuente
Accidentalmente terminé escribiendo casi lo mismo provisto por git-extras. Entonces, si prefiere un solo comando personalizado en lugar de instalar un montón de otros comandos adicionales, simplemente coloque este
git-pr
archivo en algún lugar de su$PATH
y luego simplemente puede escribir:fuente
Si sigue el flujo de trabajo "bifurcación github", donde crea una bifurcación y agrega el repositorio remoto ascendente:
para ingresar a su rama actual, su comando se vería así:
para ingresar a una nueva rama, el código se vería así:
fuente
Github lanzó recientemente una utilidad cli llamada github-cli . Después de instalarlo, puede pagar localmente la rama de una solicitud de extracción utilizando su ID
p.ej:
gh pr checkout 2267
Tenga en cuenta que este paquete todavía está en beta
fuente
Obtenga la sucursal de relaciones públicas remota en la sucursal local:
git fetch origin ‘remote_branch’:‘local_branch_name’
Establezca el flujo ascendente de la sucursal local en la sucursal remota.
git branch --set-upstream-to=origin/PR_Branch_Name local_branch
Cuando desee impulsar los cambios locales a la rama PR nuevamente
git push origin HEAD:remote_PR_Branch_name
fuente
Supongamos que su origen y la información aguas arriba son como a continuación
y el nombre de tu sucursal es como
luego
hará el trabajo
fuente
Si sus confirmaciones están en la rama maestra de su repositorio bifurcado, entonces podría hacer lo siguiente.
fuente