Desde la página de manual de git-branch :
git branch --contains <commit>
Enumere solo las ramas que contienen el commit especificado (HEAD si no se especifica). Implica --list
.
git branch -r --contains <commit>
Enumera también las ramas de seguimiento remoto (como se menciona en la respuesta del usuario 3941992 a continuación) que son "ramas locales que tienen una relación directa con una rama remota".
Vea también este artículo de git ready .
La --contains
etiqueta determinará si una determinada confirmación se ha introducido aún en su rama. Quizás tenga un SHA de confirmación de un parche que pensó que había aplicado, o simplemente desea verificar si la confirmación para su proyecto de código abierto favorito que reduce el uso de memoria en un 75% todavía está disponible.
$ git log -1 tests
commit d590f2ac0635ec0053c4a7377bd929943d475297
Author: Nick Quaranto <nick@quaran.to>
Date: Wed Apr 1 20:38:59 2009 -0400
Green all around, finally.
$ git branch --contains d590f2
tests
* master
Nota: si el commit está en una rama de seguimiento remota , agregue la -a
opción .
(como comenta MichielB a continuación )
git branch -a --contains <commit>
MatrixFrog comenta que solo muestra qué ramas contienen esa confirmación exacta .
Si desea saber qué ramas contienen una confirmación "equivalente" (es decir, qué ramas han seleccionado esa confirmación) eso es git cherry
:
Debido a que git cherry
compara el conjunto de cambios en lugar de la ID de confirmación (sha1) , puede usar git cherry
para averiguar si una confirmación que realizó localmente se ha aplicado <upstream>
bajo una ID de confirmación diferente.
Por ejemplo, esto sucederá si está alimentando parches <upstream>
por correo electrónico en lugar de empujar o extraer confirmaciones directamente.
__*__*__*__*__> <upstream>
/
fork-point
\__+__+__-__+__+__-__+__> <head>
(Aquí, los commits marcados como ' -
' no aparecerían git cherry
, lo que significa que ya están presentes <upstream>
).