git-annotate
Название
git-annotate — добавление к строкам файла сведений о коммитах
Краткое описание
git annotate [<options>] [<rev-opts>] [<rev>] [--] <file>
Описание
Добавляет к каждой строке указанного файла сведения о коммите, в котором эта строка появилась. Можно также добавить сведения начиная с указанной ревизии.
Единственное различие между этой командой и git-blame[1] состоит в том, что они используют немного разные форматы вывода. Эта команда существует только для обратной совместимости с существующими скриптами и для того, чтобы предоставить более привычное имя команды тем, кто перешёл с других систем управления версиями.
Параметры
-
-b -
Показывать пустой SHA-1 для граничных коммитов. Это также можно настроить с помощью параметра конфигурации
blame.blankBoundary. -
--root -
Не считать корневые коммиты границами. Это также можно настроить с помощью параметра конфигурации
blame.showRoot. -
--show-stats -
Добавлять дополнительную статистику в конец вывода blame.
-
-L<start>,<end> -
-L:<funcname> -
Добавлять сведения только к диапазону строк, заданному параметрами <start>
,<end>, или регулярным выражением для имени функции<funcname>. Параметр можно указать несколько раз. Перекрывающиеся диапазоны допустимы.Параметры
<start>и<end>необязательны. Диапазон-L<start> или-L<start>,охватывает строки от<start>до конца файла. Диапазон-L,<end> охватывает строки от начала файла до<end>.Параметры
<start>и<end>могут иметь один из следующих форматов:-
<number>Если
<start>или<end>— число, оно задаёт абсолютный номер строки (нумерация начинается с 1). -
/<regex>/В этом формате используется первая строка, соответствующая заданному регулярному выражению POSIX
<regex>. Если<start>— регулярное выражение, поиск начинается с конца предыдущего диапазона-L, если он есть, иначе — с начала файла. Если<start>—^/<regex>/, поиск начинается с начала файла. Если<end>— регулярное выражение, поиск начинается со строки, заданной параметром<start>. -
+<offset> или-<offset>Этот формат допустим только для
<end>и задаёт количество строк до или после строки, указанной параметром<start>.
Если вместо
<start>и<end>указан параметр:<funcname>, он представляет собой регулярное выражение, задающее диапазон от первой строки имени функции, соответствующей<funcname>, до следующей строки имени функции. Параметр:<funcname> выполняет поиск с конца предыдущего диапазона-L, если он есть, иначе — с начала файла. Параметр^:<funcname> выполняет поиск с начала файла. Имена функций определяются так же, как командаgitdiffопределяет заголовки фрагментов исправления (см.Defining a custom hunk-headerв gitattributes[5]). -
-
-l -
Показывать длинную ревизию (по умолчанию: выкл.).
-
-t -
Показывать необработанную временную метку (по умолчанию: выкл.).
-
-S<revs-file> -
Использовать ревизии из
<revs-file>вместо вызова git-rev-list[1]. -
--reverse<start>..<end> -
Просматривать историю вперёд, а не назад. Вместо показа ревизии, в которой появилась строка, эта команда показывает последнюю ревизию, в которой строка существовала. Для этого требуется диапазон ревизий, например <start>
..<end>, в котором путь, для которого нужно определить авторство, существует в<start>. Для удобстваgitblame--reverse<start> считается равнымgitblame--reverse<start>..HEAD. -
--first-parent -
При обнаружении коммита слияния следовать только за коммитом первого родителя. Этот параметр позволяет определить, когда строка была добавлена в конкретную интеграционную ветку, а не когда она появилась в истории в целом.
-
-p -
--porcelain -
Выводить данные в формате, предназначенном для машинной обработки.
-
--line-porcelain -
Использовать формат porcelain, но выводить сведения о коммите для каждой строки, а не только при первом упоминании коммита. Подразумевает
--porcelain. -
--incremental -
Выводить результат постепенно в формате, предназначенном для машинной обработки.
-
--encoding=<encoding> -
Задать кодировку для вывода имён авторов и описаний коммитов. Если указать
none, вывод blame будет содержать данные без преобразования. Дополнительную информацию см. в разделе о кодировке на странице руководства git-log[1]. -
--contents<file> -
Добавлять сведения, используя содержимое файла
<file>; начать с<rev>, если оно указано, и сHEADв противном случае. Можно указать-, чтобы команда читала содержимое файла из стандартного ввода. -
--date<format> -
Задать формат вывода дат. Если
--dateне указан, используется значение переменной конфигурацииblame.date. Если переменная конфигурацииblame.dateтакже не задана, используется формат iso. Поддерживаемые значения см. в описании параметра--dateна странице git-log[1]. -
--progress -
--no-progress -
Включить вывод сведений о ходе выполнения в стандартный поток ошибок, даже если он не подключён к терминалу. По умолчанию сведения о ходе выполнения выводятся только при подключении к терминалу. Нельзя использовать
--progressвместе с--porcelainили--incremental. -
-M[<num>] -
Обнаруживать перемещённые или скопированные строки в пределах файла. Когда коммит перемещает или копирует блок строк (например, исходный файл содержит
A, а затемB, и коммит меняет его наB, а затемA), традиционный алгоритмblameобнаруживает только половину перемещения и обычно приписывает строки, перемещённые вверх (то естьB), родительскому коммиту, а строки, перемещённые вниз (то естьA), — дочернему коммиту. С этим параметром обе группы строк приписываются родительскому коммиту за счёт дополнительных проходов анализа.Параметр
<num>необязателен, но задаёт минимальное количество буквенно-цифровых символов, которые Git должен распознать как перемещённые или скопированные в пределах файла, чтобы связать эти строки с родительским коммитом. Значение по умолчанию — 20. -
-C[<num>] -
В дополнение к
-M, обнаруживать строки, перемещённые или скопированные из других файлов, изменённых в том же коммите. Это полезно при реорганизации программы и перемещении кода между файлами. Если указать этот параметр дважды, команда дополнительно ищет копии в других файлах коммита, в котором создан данный файл. Если указать параметр трижды, команда дополнительно ищет копии в других файлах в любом коммите.Параметр
<num>необязателен, но задаёт минимальное количество буквенно-цифровых символов, которые Git должен распознать как перемещённые или скопированные между файлами, чтобы связать эти строки с родительским коммитом. Значение по умолчанию — 40. Если указано несколько параметров-C, учитывается аргумент<num>последнего параметра-C. -
--ignore-rev<rev> -
Игнорировать изменения, внесённые этой ревизией, при определении авторства, как если бы этих изменений не было. Строки, изменённые или добавленные в игнорируемом коммите, будут приписаны предыдущему коммиту, изменившему эту строку или соседние строки. Этот параметр можно указать несколько раз, чтобы игнорировать несколько ревизий. Если задан параметр конфигурации
blame.markIgnoredLines, строки, изменённые в игнорируемом коммите и приписанные другому коммиту, будут отмечены символом ? в выводе blame. Если задан параметр конфигурацииblame.markUnblamableLines, строки, затронутые игнорируемым коммитом, авторство которых не удалось приписать другой ревизии, будут отмечены символом*. В режимах porcelain соответствующие строки выводятся какignoredиunblamable. -
--ignore-revs-file<file> -
Игнорировать ревизии, перечисленные в
<file>; формат файла должен совпадать с форматомfsck.skipList. Этот параметр можно указать несколько раз; эти файлы обрабатываются после файлов, заданных параметром конфигурацииblame.ignoreRevsFile. Пустое имя файла,"", очистит список ревизий из ранее обработанных файлов. -
--color-lines -
В формате по умолчанию окрашивать аннотации строк по-разному, если они относятся к тому же коммиту, что и предыдущая строка. Это упрощает различение блоков кода, добавленных разными коммитами. По умолчанию используется голубой цвет; его можно настроить с помощью параметра конфигурации
color.blame.repeatedLines. -
--color-by-age -
В формате по умолчанию окрашивать аннотации строк в зависимости от возраста строки. Параметр конфигурации
color.blame.highlightRecentзадаёт цвета для каждого возрастного диапазона. -
-h -
Показать справку.
См. также
annotate
© 2005–2026 Linus Torvalds and others
Licensed under the GNU General Public License version 2.
https://git-scm.com/docs/git-annotate