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> начинается с начала файла. Имена функций определяются так же, какgitdiffформирует заголовки блоков исправлений (см.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