Spec-Zone.ru › Git

gitk

Название

gitk — браузер репозитория Git

Краткое описание

gitk [<options>] [<revision-range>] [--] [<path>…​]

Описание

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

Параметры

Для управления отображаемыми ревизиями gitk поддерживает большинство параметров, применимых к команде git rev-list. Также поддерживаются некоторые параметры команд git diff-*, управляющие отображением изменений, внесённых каждым коммитом. Наконец, поддерживаются некоторые параметры, специфичные для gitk.

Как правило, gitk распознаёт только параметры с аргументами в форме stuck (см. gitcli[7]) из-за ограничений анализатора командной строки.

Параметры и аргументы rev-list

На этой странице руководства описаны только наиболее часто используемые параметры. Полный список см. в git-rev-list[1].

--all

Показать все ссылки (ветки, теги и т. д.).

--branches[=<pattern>]
--tags[=<pattern>]
--remotes[=<pattern>]

Считать, что все ветки (теги, удалённые ветки соответственно) указаны в командной строке как <commit>. Если задан <pattern>, ограничить ссылки теми, которые соответствуют заданному шаблону glob оболочки. Если в шаблоне нет ?, * или [, в конце подразумевается /*.

--since=<date>

Показать коммиты, созданные позже указанной даты.

--until=<date>

Показать коммиты, созданные раньше указанной даты.

--date-order

По возможности сортировать коммиты по дате.

--merge

Если попытка слияния завершается конфликтами, показать коммиты в истории между двумя ветками (то есть HEAD и MERGE_HEAD), которые изменяют файлы с конфликтами и отсутствуют во всех сливаемых вершинах.

--left-right

Отметить, с какой стороны симметричной разности достижим коммит. Перед коммитами с левой стороны ставится символ <, а перед коммитами с правой стороны — символ >.

--full-history

При фильтрации истории с помощью <path>…​ не исключать некоторые части истории. (Более подробное объяснение см. в разделе «Упрощение истории» в git-log[1].)

--simplify-merges

Дополнительный параметр для --full-history, удаляющий из итоговой истории некоторые ненужные слияния, если в них не участвуют выбранные коммиты. (Более подробное объяснение см. в разделе «Упрощение истории» в git-log[1].)

--ancestry-path

Если задан диапазон коммитов для отображения (например, commit1..commit2 или commit2 ^commit1), показывать только коммиты, непосредственно находящиеся в цепочке предков между commit1 и commit2, то есть коммиты, которые являются потомками commit1 и предками commit2. (Более подробное объяснение см. в разделе «Упрощение истории» в git-log[1].)

-L<start>,<end>:<file>
-L:<funcname>:<file>

Отслеживать изменение диапазона строк, заданного как <start>,<end>, или имени функции, соответствующего регулярному выражению <funcname>, в файле <file>. Ограничивать набор путей нельзя. Сейчас эта возможность ограничена обходом, начинающимся с одной ревизии: можно указать ноль или один положительный аргумент ревизии, а <start> и <end> (или <funcname>) должны существовать в начальной ревизии. Этот параметр можно указывать несколько раз. Подразумевает --patch. Вывод исправлений можно отключить с помощью --no-patch. Поддерживаются форматы diff без исправлений: --raw, --name-only, --name-status и --summary. Форматы статистики diff (--stat, --numstat, --shortstat, --dirstat) пока не реализованы.

Поддерживаются параметры форматирования исправлений, такие как --word-diff, --color-moved, --no-prefix, параметры обработки пробелов (-w, -b), параметры pickaxe (-S, -G) и --diff-filter.

<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> начинается с начала файла. Имена функций определяются так же, как git diff формирует заголовки блоков исправлений (см. Defining a custom hunk-header в gitattributes[5]).

<диапазон ревизий>

Ограничить набор отображаемых ревизий. Это может быть одна ревизия, означающая, что нужно показать её и более ранние ревизии, либо диапазон вида «<from>..<to>», который показывает все ревизии от <from> и до <to>. Можно применять и более сложные способы выбора ревизий. Полный список способов указания имён объектов см. в gitrevisions[7].

<путь>…​

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

Параметры, специфичные для gitk

--argscmd=<command>

Команда, выполняемая каждый раз, когда gitk необходимо определить диапазон ревизий для отображения. Предполагается, что команда выводит в стандартный вывод список дополнительных ревизий для отображения, по одной на строку. Используйте этот параметр вместо явного указания <revision-range>, если набор отображаемых коммитов может меняться при обновлении.

--select-commit=<ref>

Выбрать указанный коммит после загрузки графа. Поведение по умолчанию эквивалентно указанию --select-commit=HEAD.

Примеры

gitk v2.6.12.. include/scsi drivers/scsi

Показать изменения начиная с версии v2.6.12, затронувшие файлы в подкаталогах include/scsi или drivers/scsi

gitk --since="2 weeks ago" -- gitk

Показать изменения файла gitk за последние две недели. «--» необходимо, чтобы избежать путаницы с веткой с именем gitk

gitk --max-count=100 --all -- Makefile

Показать не более 100 изменений файла Makefile. Вместо поиска изменений только в текущей ветке искать их во всех ветках.

Файлы

Пользовательская конфигурация и настройки хранятся в:

  • $XDG_CONFIG_HOME/git/gitk, если этот файл существует, иначе

  • $HOME/.gitk, если этот файл существует

Если ни один из указанных выше файлов не существует, по умолчанию создаётся и используется $XDG_CONFIG_HOME/git/gitk. Если $XDG_CONFIG_HOME не задана, во всех случаях используется значение по умолчанию $HOME/.config.

История

Gitk был первым графическим браузером репозитория; его написал Пол Маккеррас на Tcl/Tk.

gitk фактически поддерживается как независимый проект, но стабильные версии распространяются в составе набора Git для удобства конечных пользователей.

gitk-git/ происходит из проекта gitk Йоханнеса Зикста:

https://github.com/j6t/gitk

См. также

qgit(1)

Браузер репозитория, написанный на C++ с использованием Qt.

tig(1)

Минималистичный браузер репозитория и подсветчик вывода инструментов Git, написанный на C с использованием Ncurses.

gitk

© 2005–2026 Linus Torvalds and others
Licensed under the GNU General Public License version 2.
https://git-scm.com/docs/gitk

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API