2011-01-10 10 views
218

Tengo una sucursal local que rastrea la sucursal remota/maestra. Después de ejecutar git-pull y git-log, el registro mostrará todas las confirmaciones en la rama de seguimiento remoto, así como en la sucursal actual. Sin embargo, debido a que se realizaron tantos cambios en la sucursal remota, necesito ver solo las confirmaciones hechas a la sucursal local actual.¿Cómo ejecuto git log para ver los cambios solo para una rama específica?

¿Cuál sería el comando de Git para usar solo para mostrar confirmaciones para una rama específica?

Notas:

de configuración de la información:

[branch "my-branch"] 
    remote = origin 
    merge = refs/heads/master 

Respuesta

312

Suponiendo que su rama fue creado fuera de master:

git cherry -v master 

o

git log master.. 

Si r branch se realizó fuera de origin/master, luego diga origin/master en lugar de master.

+65

Perfecto! 'git log --no-merges master..' era exactamente lo que necesitaba. –

+6

tenga en cuenta que esto no tiene en cuenta las selecciones de cereza. – eis

+1

@HighwayofLife: '--no-merges' puede parecer que solo muestra confirmaciones de una rama específica, pero en realidad solo muestra confirmaciones que no dieron como resultado una fusión – rynmrtn

36

Uso:

git log --graph --abbrev-commit --decorate --first-parent <branch_name> 

Es sólo para la rama de destino (de --graph supuesto, --abbrev-commit --decorate son más polisihing).

La opción clave es --first-padres: "Siga sólo el primer padre cometió al ver una combinación de cometer" (https://git-scm.com/docs/git-log)

evita que los tenedores de confirmación desde que se muestra.

+11

'--first-parent ' es la opción. trabajos ! – parasrish

+3

Donde nombre-rama es qué, la rama cuyo historial solo quiero ver? En una rama con solo 3 cambios, esto me muestra cientos. –

+1

'--primer padre ' ¡también funcionó para mí! Terminé con un alias para 'git log --primero padre $ current_branch_name --no-merges'. En respuesta a @EdRandall, mostrará los commits en la rama + aquellos de donde se ramificó. Por ejemplo: – rachel

0

El problema que estaba teniendo, que creo que es similar a esto, es que el maestro estaba demasiado lejos de mi punto de ramificación para que la historia sea útil. (Navegar hacia el punto de ramificación llevaría demasiado tiempo.)

Después de un poco de ensayo y error, esto me dio más o menos lo que quería:

git log --graph --decorate --oneline --all ^master^! 
1

Si desea que sólo esas confirmaciones que se hacen por usted en una rama particular, use el comando a continuación.

git log branch_name --author='Dyaniyal' 
Cuestiones relacionadas