Ограничение git log коммитами во время определенной ветки - PullRequest
1 голос
/ 14 октября 2019

Команда git log origin/<branchname> показывает коммиты в определенной ветке, но она также показывает коммиты, которые были сделаны в родительскую ветвь до того, как <branchname> был даже создан.

Как ограничить выводсодержать только те записи, которые были зафиксированы после создания ветки?

Ответы [ 2 ]

2 голосов
/ 14 октября 2019

Попробуйте использовать git merge-base:

git log $(git merge-base parent-branch branchname)..branchname
# shorter
git log parent-branch..branchname
# which stands for
git log branchname --not parent-branch

Это будет список всех коммитов после точки слияния между двумя ветвями.
Этот синтаксис предполагает сеанс bash.

См .:

Это связано с git rev-list, где git rev-list foo..bar показывает все в ветви bar, что также не в ветви foo.

Специальная запись "<commit1>..<commit2>" может использоваться как сокращение для "^'<commit1>' <commit2>": достижимо из commit2, но не из commit1.

См. git revisions для получения дополнительной информации.


Примечание: Git не имеет понятия «родительская» ветвь, только граф коммитов: см. « Как найти ближайшего родителя ветки Git» "

1 голос
/ 14 октября 2019

Это также работает:

git log branch1..branch2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...