#git
#git
Вопрос:
Вопрос прост: я хочу видеть выходные git log
данные, но для всего репозитория. В настоящее время он просто показывает наборы изменений в ветке, в которой я нахожусь : git log --all --source --graph
.
Например, было бы идеально, если бы я мог видеть последние 100 коммитов в репозитории, независимо от того, в какой ветке я нахожусь и к каким ветвям принадлежат эти коммиты. Возможно ли это?
Ответ №1:
Попробуйте выполнить эту команду:
git log --all --graph --decorate --pretty=oneline --abbrev-commit
У вас уже было правильное начало --all --graph
. Добавление --decorate
покажет любые ветви или теги, указывающие на фиксацию, а остальные два — --pretty=oneline --abbrev-commit
просто для очистки и сжатия выходных данных.
Лучше всего включить --pretty
в команду, потому --decorate
что это не сработает, если вы используете пользовательский формат.
Если вы собираетесь часто использовать эту команду, вы можете добавить псевдоним, чтобы его было легко использовать повторно, не вводя все целиком. Например, добавьте следующее в свой ~/.gitconfig
:
[alias]
history = "git log --all --graph --decorate --pretty=oneline --abbrev-commit"
Затем вы можете просто использовать git history
, чтобы получить красиво отформатированный вывод.
Комментарии:
1. Вы можете использовать
--oneline
в качестве другого способа написания--pretty=oneline --abbrev-commit
2. И вы могли бы использовать
git history -n 100
, чтобы ограничить количество коммитов, которые вы видите.
Ответ №2:
Вы также можете использовать gitk --all
для отображения всех коммитов, что вам тоже нужно.
Ответ №3:
Я не знаю, есть ли для этого одна команда. Кроме того, это может быть довольно запутанным, поскольку коммиты могут чередоваться.
Я написал небольшой скрипт ruby, который выводит что-то подобное, но в формате, подходящем для dot
команды graphviz, чтобы дать мне графическое представление истории репозитория. Вы могли бы попробовать это. Сценарий довольно прост, поэтому вы можете изменить его, чтобы печатать ту же информацию (которую вы ищете) в линейном формате.