Digamos que he creado una nueva rama my_experiment
de master
e hice varias entregas a my_experiment
. Si hago un " git log
on" my_experiment
, veo las confirmaciones realizadas en esta rama, pero también las confirmaciones realizadas master
antes de que my_experiments
se creara la rama.
Me resultaría muy útil ver el historial de todas las confirmaciones a la my_experiments
rama 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_experiments
rama o no.
¿Hay alguna manera de hacer esto con Git?
git log master..
dice a Git?master..
) parte.El
git merge-base
comando 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-parent
Nota: 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 elmaster
límite (lo que significa que simy_experiment
contiene 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 --oneline
fuente
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_NAME
se 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