Резюме
- git-who предоставляет комплексную информацию об авторе, а не просто построчное авторство.
- Вы можете использовать git-who для определения ведущих участников, просмотра иерархии проекта и отслеживания вклада с течением времени.
- git-who предлагает возможности настройки вывода, фильтрации результатов и исключения коммитов слияния для получения точной статистики.
Git blame полезен, но он сообщает только об авторстве построчно. Если вам нужен всеобъемлющий обзор ваших проектов с открытым исходным кодом на основе авторов, попробуйте этот инструмент.
Что такое git-who и чем он отличается от git blame?
git-who — это пользовательская команда git, которая показывает полезную, интересную информацию об авторах коммитов в репозитории. Вы можете использовать ее, чтобы узнать, кто обновил код последним, какие авторы внесли наибольший вклад в целом и кто работает над определенными подкомпонентами.
В то время как встроенная команда git git blame может рассказать вам об авторах отдельных строк кода, git-who предоставляет подробную информацию о файлах, каталогах и целых проектах.
git-who работает на основе терминала, но выдает привлекательный и читабельный вывод, отображая данные в таблицах и выделяя их цветами.
Как установить и использовать git-who
Самый простой способ установить git-who — с помощью менеджера пакетов Homebrew:
brew установить git-who
Программное обеспечение также легко установить из исходного кода, или вы можете загрузить предварительно скомпилированный двоичный файл со страницы релизов проекта.
После установки вы можете запустить его с помощью мерзавец-кто or мерзавец кто в каталоге репозитория git:
Убедитесь, что бинарный файл git-who находится в вашем PATH, особенно если вы собрали его из исходников. Это позволит вам использовать мерзавец кто форма команды.
Этот вид по умолчанию — подкоманда table. Он показывает красивую сводку ведущих участников, а также их последние правки и общее количество коммитов. git-who поддерживает две другие команды: tree и hist.
Подкоманда tree отображает полную иерархию репозитория с указанием главного участника рядом с каждым каталогом, а также общего количества его коммитов.
Третья подкоманда — hist, «история». Это представление показывает временную шкалу вкладов по дате, позволяя отслеживать участников проекта с течением времени:
Это также гистограмма, поэтому вы можете быстро определить периоды с наибольшим количеством коммитов.
Некоторые команды могут выполняться долго, особенно в больших репозиториях, таких как ядро Linux. Чтобы ускорить их, попробуйте отфильтровать результаты с помощью расширенных параметров git-who.
Расширенные возможности git-who
Каждая из подкоманд git-who имеет разумные значения по умолчанию, но вы увидите очень разные результаты в зависимости от размера и структуры вашего репозитория. Например, запуск дерево git-who в огромном репозитории будет создано много строк вывода.
Программа git-who поддерживает несколько опций, помогающих вам настроить ее поведение и вывод. Все подкоманды позволяют использовать —author для включения только определенных авторов и —nauthor для их исключения. Они также принимают опции —since и —until для ограничения вывода по дате:
Важно отметить, что статистика git-who по умолчанию не включает коммиты слияния. Это может иметь большое значение, в зависимости от того, как управляется репозиторий. Например, Линус Торвальдс явно отсутствует в статистике своего собственного репозитория Linux:
Но как общий сопровождающий Торвальдс обрабатывает огромное количество слияний и, безусловно, вносит наибольший вклад, если учитывать слияния, используя опцию —merges:
Настройка таблицы git-who
Таблица по умолчанию сортируется по общему количеству коммитов. Вы можете изменить это, чтобы сортировать авторов по их последнему коммиту, используя опцию -m:
Опция -l фокусируется на измененных строках, а не на коммитах. Она сортирует по измененным строкам и показывает количество измененных файлов, количество добавленных строк и удаленных строк:
Вы также можете отсортировать вывод по измененным файлам с помощью -f или по первому изменению с помощью -c.
Настройка дерева git-who
Первое, что вы, возможно, захотите сделать с деревом, — это ограничить его глубину. Если ваш репозиторий содержит много файлов и каталогов, команда дерева по умолчанию сгенерирует много выходных данных. Параметр -d позволяет указать глубину, так что вы можете просматривать информацию об авторе только для каталогов верхнего уровня, например:
Опция -l выберет автора с наибольшим количеством измененных строк вместо автора с наибольшим количеством коммитов. Она аннотирует каждый файл и каталог количеством строк, которые каждый автор добавил и удалил на тот момент:
Настройка git-who истории
Подкоманда hist уже имеет удобную встроенную функцию, автоматически выбирающую представление дня, месяца или года в зависимости от возраста репозитория:
Параметры —since и —until хорошо работают с hist, ограничивая период, за который он отчитывается.
Эти опции довольно гибкие в принимаемом ими формате, поэтому попробуйте поэкспериментировать. Например, все это должно работать:
- —с=2010
- —since=»2010-09-01 12:00:00″
- —со вчерашнего дня
- —since=»3 недели назад»
- —с=»24 февраля″