Граф коммитов
Ветки, слияния и осьминожьи слияния, нарисованные как положено, в светлой теме и в тёмной. Отрисовка оконная, поэтому репозиторий на сотню тысяч коммитов прокручивается так же, как репозиторий на сотню.
![]() |
![]() |
Перемещение
- ↑ ↓ (или j k) двигают выделение.
- ⌘/Ctrl-клик добавляет коммит в множественное выделение; ⇧-клик берёт диапазон. Когда выбрано несколько, правый клик позволяет черри-пикнуть их на текущую ветку, схлопнуть подряд идущую цепочку, выгрузить один общий патч или скопировать их SHA.
- Коммиты, приехавшие в последнем фетче или пуле, помечаются как новые. Те, что ещё не попали в текущую ветку, остаются слегка полупрозрачными, пока их не заберёт пул.
- Правый клик по коммиту даёт Исправить, Отменить, Сбросить на коммит… и Открыть на GitHub, а также checkout, cherry-pick, revert, ветку, тег и копирование. Небезопасные действия остаются видимыми и отключаются.
Как показать то, что нужно вам
Фокус графа решает, сколько истории рисуется — Настройки → Темы → Граф или меню шестерёнки в шапке графа. Всё рисует всё; Линейная история (первый родитель) оставляет только ствол; Скрыть влитые ветки оставляет ствол плюс ещё не влитые ветки; Соло-режим оставляет вашу ветку, избранные ветки и ветку по умолчанию.
Фильтруется только то, что журнал уже загрузил. Скрыть влитые ветки полагается на ответ самого git на «уже содержится в текущей ветке», поэтому смена ветки меняет результат — и этот режим сохраняет каждый коммит, на который ещё указывает тег или неизвестная ссылка, то есть ровно то, что остаётся от удалённой ветки. Линейная история и Соло-режим грубее: тег или стэш на скрытом коммите исчезает вместе с ним.
Фильтр по пути: правый клик по файлу или папке → Отфильтровать граф по этому пути, и подсвеченными остаются только коммиты, которые его трогали.

- Колонки: показывайте, скрывайте, меняйте размер и порядок колонок ветки, сообщения, автора, даты, SHA, подписи и деплоя.
- Стиль: Настройки → Темы → Граф — палитра дорожек (8 встроенных, своя или сгенерированная ИИ), стиль углов, плотность строк и толщина линий, с живым превью мини-графа.

Где сидят стэши
Стэш рисуется отдельной строкой, свисая пунктирным отростком с коммита, с которого его сняли, чтобы не сдвигать ствол. Он попадает в строку прямо над этим родительским коммитом, а не в слот, который дала бы его собственная метка времени.
Метка — архивная коробка в пунктирной рамке: тот же архивный знак, что у списка стэшей, палитры команд и шапки деталей, чтобы граф называл стэш так же, как остальная программа. Пунктирная рамка отделяет его от коммита: сидя строкой выше родителя, форму надо нести «это не часть ветки».
Стэш почти всегда новее коммита, на котором сидит, поэтому порядок по дате поднял бы его среди чужих коммитов и протянул бы трос через полграфа. Родитель — единственная строка, к которой стэш на самом деле относится, поэтому он остаётся рядом.
Предел: стэш, чей родительский коммит не в загруженном окне — отрезан или за концом журнала — не к чему якориться и падает на порядок по дате, пока родитель не загрузится. Линейная история и Соло-режим отбрасывают стэш, чей родитель они отбрасывают, как сказано выше.
Детали коммита
При выборе коммита показываются его изменённые файлы (деревом или плоским
списком), автор, SHA, соавторы и подпись. Заголовок над списком файлов разбивает число по виду, теми же цветами, что у глифов в строках. Наведите, чтобы увидеть обычную сумму. Ссылки вида #123 и @упоминания
автоматически ведут на ваш хостинг.
Список файлов выделяется группами обычными жестами (клик с ⌘/Ctrl, клик с ⇧, ⇧+↑/↓). Правый клик по выделению → Восстановить {n} файлов в рабочее дерево берёт эти файлы ровно такими, какими их видел этот коммит: после одного подтверждения рабочие копии перезаписываются, а HEAD и индекс остаются нетронутыми.

См. также: Blame и история файла · Поиск · Машина времени

