Узнайте, кто над чем работает, с помощью этого полезного инструмента Git

Резюме

  • git-who предоставляет комплексную информацию об авторе, а не просто построчное авторство.
  • Вы можете использовать git-who для определения ведущих участников, просмотра иерархии проекта и отслеживания вклада с течением времени.
  • git-who предлагает возможности настройки вывода, фильтрации результатов и исключения коммитов слияния для получения точной статистики.

Git blame полезен, но он сообщает только об авторстве построчно. Если вам нужен всеобъемлющий обзор ваших проектов с открытым исходным кодом на основе авторов, попробуйте этот инструмент.

Что такое git-who и чем он отличается от git blame?

git-who — это пользовательская команда git, которая показывает полезную, интересную информацию об авторах коммитов в репозитории. Вы можете использовать ее, чтобы узнать, кто обновил код последним, какие авторы внесли наибольший вклад в целом и кто работает над определенными подкомпонентами.

В то время как встроенная команда git git blame может рассказать вам об авторах отдельных строк кода, git-who предоставляет подробную информацию о файлах, каталогах и целых проектах.

Узнайте, кто над чем работает, с помощью этого полезного инструмента Git

git-who работает на основе терминала, но выдает привлекательный и читабельный вывод, отображая данные в таблицах и выделяя их цветами.

Узнайте, кто над чем работает, с помощью этого полезного инструмента Git

Как установить и использовать git-who

Самый простой способ установить git-who — с помощью менеджера пакетов Homebrew:

brew установить git-who

Программное обеспечение также легко установить из исходного кода, или вы можете загрузить предварительно скомпилированный двоичный файл со страницы релизов проекта.

После установки вы можете запустить его с помощью мерзавец-кто or мерзавец кто в каталоге репозитория git:

Узнайте, кто над чем работает, с помощью этого полезного инструмента Git

Убедитесь, что бинарный файл git-who находится в вашем PATH, особенно если вы собрали его из исходников. Это позволит вам использовать мерзавец кто форма команды.

Этот вид по умолчанию — подкоманда table. Он показывает красивую сводку ведущих участников, а также их последние правки и общее количество коммитов. git-who поддерживает две другие команды: tree и hist.

Подкоманда tree отображает полную иерархию репозитория с указанием главного участника рядом с каждым каталогом, а также общего количества его коммитов.

Узнайте, кто над чем работает, с помощью этого полезного инструмента Git

Третья подкоманда — hist, «история». Это представление показывает временную шкалу вкладов по дате, позволяя отслеживать участников проекта с течением времени:

Узнайте, кто над чем работает, с помощью этого полезного инструмента Git

Это также гистограмма, поэтому вы можете быстро определить периоды с наибольшим количеством коммитов.

Некоторые команды могут выполняться долго, особенно в больших репозиториях, таких как ядро ​​Linux. Чтобы ускорить их, попробуйте отфильтровать результаты с помощью расширенных параметров git-who.

Расширенные возможности git-who

Каждая из подкоманд git-who имеет разумные значения по умолчанию, но вы увидите очень разные результаты в зависимости от размера и структуры вашего репозитория. Например, запуск дерево git-who в огромном репозитории будет создано много строк вывода.

Программа git-who поддерживает несколько опций, помогающих вам настроить ее поведение и вывод. Все подкоманды позволяют использовать —author для включения только определенных авторов и —nauthor для их исключения. Они также принимают опции —since и —until для ограничения вывода по дате:

Узнайте, кто над чем работает, с помощью этого полезного инструмента Git

Важно отметить, что статистика git-who по умолчанию не включает коммиты слияния. Это может иметь большое значение, в зависимости от того, как управляется репозиторий. Например, Линус Торвальдс явно отсутствует в статистике своего собственного репозитория Linux:

Узнайте, кто над чем работает, с помощью этого полезного инструмента Git

Но как общий сопровождающий Торвальдс обрабатывает огромное количество слияний и, безусловно, вносит наибольший вклад, если учитывать слияния, используя опцию —merges:

Узнайте, кто над чем работает, с помощью этого полезного инструмента Git

Настройка таблицы git-who

Таблица по умолчанию сортируется по общему количеству коммитов. Вы можете изменить это, чтобы сортировать авторов по их последнему коммиту, используя опцию -m:

Узнайте, кто над чем работает, с помощью этого полезного инструмента Git

Опция -l фокусируется на измененных строках, а не на коммитах. Она сортирует по измененным строкам и показывает количество измененных файлов, количество добавленных строк и удаленных строк:

Узнайте, кто над чем работает, с помощью этого полезного инструмента Git

Вы также можете отсортировать вывод по измененным файлам с помощью -f или по первому изменению с помощью -c.

Настройка дерева git-who

Первое, что вы, возможно, захотите сделать с деревом, — это ограничить его глубину. Если ваш репозиторий содержит много файлов и каталогов, команда дерева по умолчанию сгенерирует много выходных данных. Параметр -d позволяет указать глубину, так что вы можете просматривать информацию об авторе только для каталогов верхнего уровня, например:

Узнайте, кто над чем работает, с помощью этого полезного инструмента Git

Опция -l выберет автора с наибольшим количеством измененных строк вместо автора с наибольшим количеством коммитов. Она аннотирует каждый файл и каталог количеством строк, которые каждый автор добавил и удалил на тот момент:

Узнайте, кто над чем работает, с помощью этого полезного инструмента Git

Настройка git-who истории

Подкоманда hist уже имеет удобную встроенную функцию, автоматически выбирающую представление дня, месяца или года в зависимости от возраста репозитория:

Узнайте, кто над чем работает, с помощью этого полезного инструмента Git

Параметры —since и —until хорошо работают с hist, ограничивая период, за который он отчитывается.

Узнайте, кто над чем работает, с помощью этого полезного инструмента Git

Эти опции довольно гибкие в принимаемом ими формате, поэтому попробуйте поэкспериментировать. Например, все это должно работать:

  • —с=2010
  • —since=»2010-09-01 12:00:00″
  • —со вчерашнего дня
  • —since=»3 недели назад»
  • —с=»24 февраля″
Понравилась статья? Поделиться с друзьями: