Как сделать git log сразу из всех веток для автора?

213

Мне нужно получить отчет обо всех коммитах, которые сделал автор. Пока у меня есть сценарий, который заключает в себе следующую команду:

git log --pretty=format:"%ad:%an:%d:%B" --date=short --reverse --all --since=2.months.ago --author=Petr

Работает нормально. Тем не менее, он сообщает только о действиях для текущей ветви. Есть ли какая-либо опция, которая бы регистрировала сообщения о коммитах для автора из всех веток , а не только из текущей?

Другими словами, может ли git создать отсортированную по дате и времени последовательность всех коммитов в репозитории и извлечь информацию журнала из этой последовательности?

Решено: (скопировано из комментария ниже, который скрыт в противном случае)

Проблема заключалась в том, что у меня есть один репозиторий и два клона для одновременной работы на двух ветвях. Я перенес изменения в исходный репозиторий, но забыл получить изменения клонированного репозитория. Таким образом казалось, что --allне работает при использовании его для клонированного хранилища.

pepr
источник
Думаю, вы можете написать сценарий оболочки для этого: git logпринимает в committishкачестве первого аргумента: git log mybranch(и перечисляет все ваши ветви с git branch).
Александр Павлов
@AlexanderPavlov: Я, наверное, не понимаю. Что это committish? Можно ли получить информацию с помощью одной команды git?
pepr
1
Я получаю коммиты из всех веток, а не только из текущей? Это ожидается, так как вы предоставляете --all. Ваша команда верна
CharlesB
1
@AlexanderPavlov: не беспокойтесь о git rev-listразборе, git log --allвсе в порядке.
CharlesB
1
@CharlesB: Об этом я и думал --all, но, похоже, у меня это не работает. Я не понимаю его пояснения: притворись так, будто все ссылки refs/указаны в командной строке как <commit>.
pepr

Ответы:

186

Ваша команда верна, так как вы используете --allпереключатель, который выдает все коммиты из всех веток. Чтобы ответить на вопрос в вашем комментарии, он работает также в голых репозиториях.

CharlesB
источник
64

Вместо этого --allвы можете использовать --branches, так как --allтакже включает refs/tagsи refs/remotes.

Герт Хенгевельд
источник