Как запустить git log, чтобы увидеть изменения только для конкретной ветки? - PullRequest
319 голосов
/ 10 января 2011

У меня есть локальная ветка, отслеживающая удаленную / основную ветку. После запуска git-pull и git-log в журнале будут показаны все коммиты в удаленной ветви отслеживания, а также текущая ветка. Однако, поскольку в удаленную ветку было внесено так много изменений, мне нужно увидеть только те коммиты, которые были сделаны в текущей локальной ветке.

Какую команду Git можно использовать для отображения коммитов только для определенной ветви?

Примечания:

Информация о конфигурации:

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

Ответы [ 4 ]

430 голосов
/ 10 января 2011

Предполагая, что ваша ветвь была создана из master, затем в то время как в ветке (то есть, вы отметили ветку):

git cherry -v master

или

git log master..

Если вы не в ветке, то можете добавить имя ветки в команду "git log", например так:

git log master..branchname

Если ваша ветвь была сделана из origin/master, то скажите origin/master вместо master.

77 голосов
/ 20 сентября 2016

Использование:

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

Это только для целевой ветви (конечно, --graph, --abbrev-commit --decorate являются более многогранными).

Опция ключаis --first-parent: «Следить только за первым родительским коммитом при просмотре коммит слияния» (https://git -scm.com / docs / git-log )

зафиксировать отображение вилок.

16 голосов
/ 03 февраля 2018

Если вам нужны только те коммиты, которые вы сделали в определенной ветке, используйте команду ниже.

git log branch_name --author='Dyaniyal'
6 голосов
/ 17 сентября 2017

У меня была проблема, которая, по-моему, схожа с тем, что мастер был слишком далеко впереди моей точки ветвления, чтобы история была полезной.(Переход к точке ветвления занял бы слишком много времени.)

После некоторых проб и ошибок это дало мне примерно то, что я хотел:

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