Digamos que he creado una nueva rama my_experimentde mastere hice varias entregas a my_experiment. Si hago un " git logon" my_experiment, veo las confirmaciones realizadas en esta rama, pero también las confirmaciones realizadas masterantes de que my_experimentsse creara la rama.
Me resultaría muy útil ver el historial de todas las confirmaciones a la my_experimentsrama hasta que llegue a la creación de esa rama, efectivamente una verdadera historia de solo esa rama. De lo contrario, no me queda claro cuando reviso el registro si los commits estaban en la my_experimentsrama o no.
¿Hay alguna manera de hacer esto con Git?

git log master..dice a Git?master..) parte.El
git merge-basecomando se puede usar para encontrar un antepasado común. Entonces, si my_experiment aún no se ha fusionado en master y my_experiment se creó desde master, podría:fuente
git log --oneline `git merge-base my_experiment master`^..my_experiment --first-parentNota: si limita ese registro al último n commit (los últimos 3 commits, por ejemplo, git log -3), asegúrese de poner un espacio entre 'n' y su rama:
Antes de Git 2.1 (agosto de 2014), este error: en
git log -3master..realidad le mostraría los últimos 3 commits de la rama actual (aquímy_experiment), ignorando elmasterlímite (lo que significa que simy_experimentcontiene solo un commit, 3 todavía se enumerarían, 2 de ellosmaster)Ver commit e3fa568 por Junio C Hamano (
gitster) :revisión: analizar "
git log -<count>" con más cuidadofuente
Solo puedes usar
git log --onelinefuente
Creo que una opción para tus propósitos es
git log --online --decorate. Esto le permite conocer la confirmación marcada y las principales confirmaciones para cada rama que tiene en su historia. Al hacer esto, tiene una buena vista de la estructura de su repositorio y los compromisos asociados a una rama específica. Creo que leer esto podría ayudar.fuente
Sé que es muy tarde para este ... Pero aquí hay un (no tan simple) en línea para obtener lo que estaba buscando:
git show-branch(enviando las advertencias a/dev/null).grep -E "\[$BRANCH_NAME".$BRANCH_NAMEse obtiene congit branch | grep -E '^\*' | awk '{ printf $2 }'(la rama con una estrella, repetida sin esa estrella).tail -n+2.[$BRANCH_NAME]ased -E "s/^[^\[]*?\[/[/".fuente