Mostrar sólo la historia de una sucursal en un Git log

Estoy usando Git para mi proyecto y tratando de seguir las mejores prácticas:

  1. Yo trabajo en una rama
  2. Cuando esté listo, puedo combinar el rama en mi dev rama utilizando git merge --squash. Esto mantiene mi dev rama limpio.
  3. Siempre que el dev rama es estable y el equipo decide que es el momento para una versión, la combinación de la dev rama dentro de la maestro rama, sin el uso de la calabaza, y la etiqueta que se confirman como una versión de liberación.

Esto debería de nuestra historia, y el uso de gitk, podemos ver que todos los envíos que vienen en. Sin embargo, quiero ser capaz de ver sólo el cometa aplicado a la maestro rama. He intentado:

git log master
git show-branch

Ninguno de estos muestran sólo la historia de la maestro rama. Hay una manera fácil de hacer esto?

  • No puede usted ‘git checkout’ a ‘maestro’ de la rama y hacer un git ‘log’?
InformationsquelleAutor Alex Recarey | 2011-01-07

3 Kommentare

  1. 23

    Si entiendo correctamente, usted desea ver los une de nuevo a maestro, pero no de la historia de las mezclas. Yo creo que:

    git log --merges
    

    va a dar lo que quieres.

    ACTUALIZACIÓN: la Adición de-primer-los padres deben arreglar esto de los sonidos de la misma.

    git log --merges --first-parent
    

    – primer padre

    Follow only the first parent commit upon seeing a merge commit.
    

    Esta opción puede dar una mejor visión
    al ver la evolución de un
    tema en particular de la rama, porque
    se funde en una rama tienden a ser
    sólo sobre el ajuste a actualizado
    aguas arriba de vez en cuando, y esta
    opción le permite ignorar la
    individuo se compromete trajo a su
    la historia por tal combinación.

    • Casi, pero por desgracia esto también me muestra fusiona que se produjo en el dev de la rama. Yo sólo quiero ver combina de dev en maestro
    • primer padre no es necesariamente donde la rama que ha sido antes, se determina durante la fusión (la rama en la que la combinación que pasó). Si usted fast-forward a una combinación, el primer padre es la otra rama.
  2. 8

    Por desgracia, Git no almacena información de la filial para una confirmación, y se compromete a no pertenecer a una rama. Ramas en Git son sólo «mover etiquetas» en un curso de confirmaciones y NO una secuencia de cometa como sería de esperar.

    Así que, básicamente, no se puede mostrar compromete a que pertenecen a una rama ya que no hay tal concepto en Git.

  3. 3

    Ya que Git no almacena información acerca de qué rama naciente de la que otras, no hay forma automática a adivinar que la rama que usted podría querer ser demostrado.

    En ese sentido, --first-parent no en última instancia, ayudar, sobre todo porque es fácil tener más de un maestro, por ejemplo. Considerar:

    wc1$ git clone git://shared.com/repo
    wc1$ (hack code, git commit)
    wc2$ git clone git://shared.com/repo
    wc2$ (hack code, git commit, git push somewhere)
    wc1$ git fetch origin; git merge origin/master; git push somewhere master;
    

    (Siéntase libre de tomar una muestra aleatoria de proyecto y hacer este ejercicio.) El gráfico de ella. Por lo que no puede de manera significativa el gráfico «sólo una rama», incluso si la comete fueron marcados con el nombre de la rama que se hicieron en (porque ambos son maestros).

    • Supongamos que en situaciones como esta, en donde múltiples ramas fueron llamados ‘maestro’, que quería ver a todos ellos. (De hecho, cuando he querido algo similar a la pregunta original aquí, que generalmente es exactamente lo que yo he querido – no han sido múltiples historias, y he querido ver a todos ellos.) Así que la respuesta a «la rama que usted podría querer» sería «a todos ellos» – no hay necesidad de resolver a uno.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea