Tengo varias ramas y he descubierto una confirmación A que introdujo un error en el sistema. Esto fue subsiguientemente corregido por el compromiso B en una de las ramas y se fusionó con el maestro, pero en ese momento no se seleccionó para todas las ramas infractoras.Mostrar todas las ramas que confirman que A está activado y que la confirmación B no está activada.
Me preguntaba si hay un comando que muestre todas las ramas ofensivas que tienen commit A pero no tienen commit B?
He estado usando el siguiente para determinar que una confirmación existe en una rama
$ git branch -r --contains=A
pero quiero tratar de añadir a esto incluir algo como
$ git branch -r --contains=A ^--contains=B
Como nota al margen Lo he comprobado y no hay otros commits que contengan el mismo cambio, es decir, no ha sido seleccionado en ninguna otra rama, pero algunas ramas tienen commit B donde han divergido de master desde la fusión y otros no donde ellos ya existían antes de que el compromiso B fuera intr Oduced
Además, la posibilidad de verificar varias confirmaciones sería útil cuando la confirmación que ha solucionado un problema (confirmación B en este caso) se selecciona en varias ramas que ya ofrecen SHA de confirmación diferente.
Hola, parece que puede estar muy cerca, como dices, no es perfecto. ¿Podría proporcionar algunos detalles sobre lo que sigue 'diff <() <()' – Cellze
Este enlace explica qué 'diff <() <()' hace: http://crashingdaily.wordpress.com/2008/03/ 06/diff-two-stdout-streams/Es posible que solo funcione con BASH. –
El comando 'comm' (es decir,' comm -23') debería ser útil para lo que estás haciendo. – antak