Las solicitudes de extracción son excelentes para comprender el pensamiento más amplio sobre un cambio o conjunto de cambios realizados en un repositorio. Las solicitudes de extracción de lectura son una excelente manera de "asimilar" rápidamente un proyecto ya que, en lugar de pequeños cambios atómicos en la fuente, se obtienen agrupaciones más grandes de cambios lógicos. De manera análoga a organizar las líneas en su código en "estrofas" relacionadas para que sea más fácil de leer.
Me encuentro mirando un archivo o una confirmación, y me pregunto si hay una manera de dar marcha atrás a la confirmación de la solicitud de extracción que originalmente la creó. Esa solicitud de extracción se habría fusionado eventualmente, pero no sería necesario con un compromiso de fusión.
fuente
Respuestas:
Puede ir a github e ingresar el SHA en la barra de búsqueda, asegúrese de seleccionar el enlace "Problemas" a la izquierda.ACTUALIZADO 13 de julio de 2017
A través de la interfaz de usuario de Github, ahora hay una manera realmente fácil de hacer esto. Si está buscando una confirmación en la lista de confirmaciones en una rama en la interfaz de usuario, haga clic en el enlace a la confirmación misma. Si hay un RP para esa confirmación y no se agregó directamente a la rama, un enlace al RP que enumera el número de RP y la rama a la que ingresó estará directamente debajo del mensaje de confirmación en la parte superior de la página.
Si tiene el SHA commit y nada más y no quiere buscarlo, solo agréguelo
/commit/[commit SHA]
a la url del repositorio y verá la página commit, con el enlace PR si existe. Por ejemplo, si el SHA es 52797a7a3b087231e4e391e11ea861569205aaf4 y el repositorio es https://github.com/glimmerjs/glimmer-vm , entonces vaya a https://github.com/glimmerjs/glimmer-vm/commit/52797a7a3b154111111115115111205fuente
e4077951
, ¿todavía funciona para ti?master
)?Si es necesario, cambie
origin
el nombre del control remoto que apunta al repositorio de github al que se habría enviado la solicitud de extracción. El primer comando solo necesita ejecutarse una vez para cualquier control remoto dado, y el segundo generalmente se realizará al obtener otras actualizaciones.Esto hará que git obtenga información sobre solicitudes de extracción junto con ramas reales. Aparecerán como ramas de seguimiento remoto como
origin/pull/123
. Una vez hecho esto, puede usargit describe
con--all
y--contains
opciones para mostrar la primera rama que tiene el compromiso referenciado.Sin embargo, esto no funcionará si la confirmación que está buscando es en realidad una versión modificada de la confirmación de la solicitud de extracción, como por ejemplo si los cambios se volvieron a basar en otro trabajo o si la persona que realiza la fusión decidió realizar algunos cambios.
fuente
pull/*/head
confirmaciones sin los blobs? ¿Cómo se "limpiaría" después de esto (reconfigurar los orígenes)?upstream
fue realmente un error. Copié eso de un repositorio que tenía esa configuración donde se nombraba el control remotoupstream
y perdí esa ocurrencia al cambiarlo para usar el más comúnorigin
como el nombre del control remoto. He editado la respuesta para arreglar eso.refs/remotes/origin/pr/*
lugar derefs/remotes/origin/pull/*
Desde el 13 de octubre de 2014, esto debería ser sencillo:
Por ejemplo:
Puede ver el archivo
hakimel/reveal.js/plugin/markdown/markdown.js
, mi contribución ahora viene con una referencia al PR # 734 que originó.Esto viene de vincular solicitudes de extracción fusionadas de commits :
fuente
API
nivel?Coloque el hash de confirmación en el campo Filtros de solicitud de extracción en GitHub.
fuente
Tuve el mismo problema y escribí el pr_for_sha bash helper, documentado aquí:
http://joey.aghion.com/find-the-github-pull-request-for-a-commit/
Llámelo como
pr_for_sha <COMMIT>
y se abrirá la página de solicitud de extracción de github correspondiente en un navegador.fuente
git log
comando funcione.git log --merges --ancestry-path --oneline 66100ab0..master
-fatal: ambiguous argument '66100ab0..master': unknown revision or path not in the working tree.
-git version 2.25.0