История

Панель «История»

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

Эта панель входит в стандартный состав перспектив Git и Синхронизация совместной работы.

Открыть панель «История»
Открыть эту панель можно несколькими способами:
  • В панели Навигатор нажмите Групповая разработка Показать Историю в контекстном меню проекта;
  • В панели Репозитории Git или Структура проекта нажмите Показать в История в контекстном меню;
  • В главном меню нажмите Окно > Показать панель > Другое… > Групповая разработка > История.

В верхней части панели находится таблица коммитов. Коммиты расположены в ней в обратном хронологическом порядке — самый новый коммит находится вверху.

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

Кроме этого граф показывает ветвления, соответствующие созданию новой ветки и соединения, соответствующие слиянию веток.

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

В нижней части панели находятся область сообщений и область подробностей. Область подробностей показывает список файлов, измененных тем коммитом, который выделен в таблице. Если выделен коммит слияния, то может отображаться только часть измененных файлов, это зависит от состояния переключателя (Только первый родительский элемент).

Область сообщения показывает сообщение коммита и другую информацию, связанную с коммитом, который выделен в таблице. Кроме этого, если выделить файл в области подробностей, то в области сообщения 1C:EDT покажет изменения выделенного файла по сравнению с его предыдущим состоянием.

Скрыть или показать область сообщения
Нажмите (Показать меню)ПоказатьКомментарий ревизии в командной панели.
Скрыть или показать область подробностей вместе с областью сообщения
Нажмите (Показать меню)ПоказатьСведения о ревизии в командной панели.
Условные обозначения
  • — локальные ветки. Текущая ветка выделена жирным;
  • — ветки удаленного отслеживания;
  • — указатель на конец текущей ветки;
  • — метки.
Состояние ресурсов, находящихся под версионным контролем, обозначается значком в нижней правой части иконки ресурса:
  • — объект (файл), который пока не находится под версионным контролем;
  • — новый объект (файл), помещенный в индекс и готовый к фиксации в репозитории;
  • — объект (файл), который уже находится под версионным контролем. В рабочем каталоге он не изменен, по сравнению с репозиторием;
  • — угловая кавычка справа от объекта (файла), находящегося под версионным, контролем говорит о том, что в рабочем каталоге этот объект изменен по сравнению с тем, что находится в репозитории;
  • — измененный объект (файл), находящийся под версионным контролем. Его изменения помещены в индекс и готовы к фиксации в репозитории;
  • — частично проиндексированный объект (файл). Есть изменения этого объекта, уже помещенные в индекс (но еще не зафиксированные), и есть изменения, которые были выполнены после этого и еще не помещены в индекс;
  • — файл, который содержит конфликты слияния;
  • — файл, который находился под версионным контролем и был удален из файловой системы;
  • — файл, который игнорируется системой контроля версий Git;
  • — файл, отмеченный как Assume Unchanged.
Настроить обозначение ресурсов в Git
Нажмите Окно > Параметры... > Групповая разработка > Git > Оформление меток в главном меню. Подробнее.
Командная панель
  • (Перейти к следующему коммиту удовлетворяющему критерию поиска)выделяет следующий найденный коммит;
  • (Перейти к предыдущему коммиту удовлетворяющему критерию поиска)выделяет предыдущий найденный коммит;
  • (Сменить на)нажатием переключает область поиска, а выпадающее меню дополнительно к этому позволяет настроить игнорирование регистра букв при поиске;
  • (Обновить)панель обновляется автоматически с некоторым интервалом. Эта команда позволяет обновить панель вручную, не дожидаясь автоматического обновления;
  • (Связать с редактором)связывает панель с редактором таким образом, что они начинают работать синхронно. В панели автоматически выделяется тот элемент, который редактируется;
  • (Закрепить это представление истории)если эта кнопка нажата, выполнение команды Показать в История приведет к тому, что будет открыта еще одна панель История, в которой будут показаны новые результаты. Содержимое этой панели не изменится;
  • (Показать предыдущие истории)показывает результаты предыдущих команд Показать в История;
  • (Show Find Toolbar)показывает или скрывает строку для поиска коммитов и дополнительные команды;
  • (Переключить репозиторий)если в панели Репозитории Git существует несколько репозиториев, то эта кнопка позволяет выбрать, коммиты какого из репозиториев будет показывать панель История;
  • (Change the File Scope for the History)ограничивает область показываемых коммитов;
  • (Режим сравнения)не используется при разработке прикладных решений «1С:Предприятия»;
  • (Change which commits to show)указывает, коммиты каких веток должны отображаться в панели;
  • (Только первый родительский элемент)если кнопка нажата, вы будете видеть в истории только те коммиты, которые выполнены непосредственно в просматриваемой ветке. В противном случае вы будете видеть также коммиты, выполненные в других ветках, влитых в просматриваемую ветку;
  • (Показать меню)открывает выпадающее меню, в котором содержатся дополнительные команды для панели;
    • Обновитьпанель обновляется автоматически с некоторым интервалом. Эта команда позволяет обновить панель вручную, не дожидаясь автоматического обновления;
    • Таблицаподменю позволяет скрывать или отображать различные колонки таблицы;
    • Показатьподменю содержит следующие команды:
      • First Parent Onlyесли кнопка нажата, вы будете видеть в истории только те коммиты, которые выполнены непосредственно в просматриваемой ветке. В противном случае вы будете видеть также коммиты, выполненные в других ветках, влитых в просматриваемую ветку;
      • Дополнительные ссылкивключает или выключает отображение ссылок, созданных во время получения, перебазирования слияния, например таких, как FETCH_HEAD или ORIGIN_HEAD. Отображение этих ссылок может быть полезно для устранения беспорядка в панели История;
      • Историю заметокотображает или скрывает примечания Gerrit Code Review;
      • Отслеживать переименованияесли флажок установлен, то переименование выбранного ресурса будет отслеживаться в панели История, когда используется фильтр Все изменения ресурса;
      • Панель поискапоказывает или скрывает строку для поиска коммитов и дополнительные команды;
      • Комментарий ревизиипоказывает или скрывает область сообщения коммита;
      • Сведения о ревизиипоказывает или скрывает область подробностей вместе с областью сообщения;
      • Относительные датывключает или выключает отображение даты в панели История как абсолютной или относительной;
      • E-mail адресапоказывает или скрывает адрес электронной почты у автора и коммитера;
      • In Revision Commentподменю содержит команды, позволяющие настроить внешний вид области сообщения коммита: отображение веток и меток, перенос и форматирование сообщения коммита;
    • Фильтрограничивает область показываемых коммитов;
    • Ref Filters...настраивает шаблоны для показа веток;
    • Режим сравненияне используется при разработке прикладных решений «1С:Предприятия»;
Контекстное меню таблицы
  • Сравнить с рабочей директориейНе используется при разработке приложений «1С:Предприятия». Сравнивает коммит с рабочим каталогом;
  • Открыть коммитоткрывает коммит в панели просмотра;
  • Извлечьесли выбранный коммит указывает на ветку, то переключает проект на этот коммит. В противном случае извлекает выбранный коммит в рабочий каталог в состоянии «отсоединенный HEAD»;
  • Отправить коммит...отправляет этот коммит в выбранную удаленную ветку;
  • Создать ветку...создает новую ветку средствами Git (без связи с информационной базой);
  • Удалить ветку...удаляет ветку стандартными средствами Git;
  • Переименовать ветку...переименовывает ветку;
  • Создать метку...создает метку;
  • Удалить метку...удаляет метку;
  • Cherry-Pick...копирует этот коммит и применяет его после текущего коммита;
  • Слитьвливает эту ветку в текущую ветку;
  • Перебазировать HEAD наперебазирует текущую ветку после этого коммита;
  • Interactive Rebaseвыполняет интерактивное перебазирование текущей ветки после этого коммита;
  • Сбросотменяет изменения, выполненные в рабочем каталоге:
    • Мягко (только HEAD)указатель HEAD будет указывать на этот коммит, а индекс и рабочий каталог останутся без изменений;
    • Средне (HEAD и индекс)указатель HEAD будет указывать на этот коммит, индекс будет соответствовать этому коммиту, а рабочий каталог останется без изменений;
    • Жестко (HEAD, индекс и рабочий каталог)указатель HEAD будет указывать на этот коммит, индекс и рабочий каталог будут соответствовать этому коммиту;
  • Отменить коммитотменяет изменения, выполненные этим коммитом, путем создания нового коммита;
  • Быстрое сравнениеподменю содержит следующие команды:
    • Установить как исходнуюустанавливает этот коммит в качестве эталона для быстрого сравнения;
    • Установить текущую ревизию в качестве исходной (HEAD)устанавливает текущий коммит в качестве эталона для быстрого сравнения;
    • Установить предыдущую ревизию в качестве исходной (HEAD^)в качестве эталона для быстрого сравнения устанавливает коммит, предшествующий текущему;
  • Исправитьподменю содержит следующие команды:
  • Копировать идентификатор коммитакопирует идентификатор коммита в буфер обмена;
Контекстное меню таблицы (выделено две строки)
  • Open All in Commit Viewerоткрывает выделенные коммиты в панели просмотра;
  • Сравнить друг с другомсравнивает коммиты друг с другом;
  • Compare with Each Other in TreeНе используется при разработке приложений «1С:Предприятия». Сравнивает коммиты друг с другом в панели Сравнение в дереве Git;
  • Show Unified Diffсравнивает коммиты с помощью команды git-diff. Результат выводится в текстовый файл;
  • Cherry-Pick...копирует этот коммит и применяет его после текущего коммита;
  • Отменить коммитотменяет изменения, выполненные этим коммитом, путем создания нового коммита;
  • Исправитьподменю содержит следующие команды:
  • Копировать идентификатор коммитакопирует идентификатор коммита в буфер обмена;

Найти коммиты

Возможная проблема: Панель показывает только часть всей истории, если история очень длинная. Когда вы прокручиваете список коммитов, история подгружается динамически. Поиск ищет только среди тех коммитов, которые уже подгружены. Поэтому, если вы ищите очень давний коммит, нужно прокрутить историю примерно до даты нужного коммита, а после выполнить поиск.
Чтобы начать поиск коммитов, нажмите (Show Find Toolbar) в командной панели. 1C:EDT покажет на командной панели строку поиска и несколько дополнительных кнопок:
  1. (Перейти к следующему коммиту удовлетворяющему критерию поиска)
  2. (Перейти к предыдущему коммиту удовлетворяющему критерию поиска)
  3. (Сменить на)

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

Найденные коммиты выделяются жирным шрифтом. Если подходящих коммитов нет, строка поиска будет подсвечена красным.

С помощью кнопок командной панели 1 и 2 можно переходить вперед и назад по найденным коммитам.

Стандартно 1C:EDT ищет во всех возможных компонентах коммита. Если такой поиск дает слишком много результатов, можно сузить область поиска. Это можно сделать нажимая на кнопку 3 или открыв ее выпадающий список и выбрав один из компонентов, в котором следует искать:
  • Комментарии — подстрока ищется в сообщениях коммитов;
  • Автор — подстрока ищется в реквизитах автора: имя, адрес электронной почты;
  • Id — подстрока ищется в идентификаторах коммитов;
  • Коммиттер — подстрока ищется в реквизитах коммитера: имя, адрес электронной почты;
  • Ветка/Метка — подстрока ищется в именах веток и в именах меток.

Стандартно поиск регистронезависимый, но если регистр букв для вас важен, снимите флажок Игнорировать регистр в выпадающем меню кнопки 3.

Совет: Также для поиска коммитов можно использовать команду главного меню Поиск > Git... или (Поиск)Поиск в Git в командной панели основного окна.

Отфильтровать коммиты

Фильтрация коммитов может быть удобна при совместной работе в панелью Навигатор или с панелью Репозитории Git. Для этого в панели История должна быть включена связь с редактором (Связать с редактором).

Перемещаясь, например, в панели Навигатор, вы будете видеть в панели История разный набор коммитов. Для указания того, какая именно область коммитов вас интересует, в командной панели есть кнопка (Change the File Scope for the History). Нажимая на нее или открыв ее выпадающий список, можно выбрать одну из областей:
  • Все изменения в репозитории — панель показывает коммиты репозитория, в котором находится выбранный проект;
  • Все изменения в проекте — панель показывает изменения выбранного проекта. Например, только коммиты расширения (если основная конфигурация и расширение находятся в одном репозитории);
  • Все изменения в родительском каталоге — панель показывает изменения объектов, находящихся на том же уровне иерархии. Например, коммиты справочников;
  • Все изменения ресурса — панель показывает изменения выбранного объекта. Например, коммиты конкретного справочника или его формы;

Показывать все ветки

Стандартно панель История показывает только коммиты текущей ветки (HEAD). Однако при выполнении операций слияния удобно видеть и другие ветки тоже. Чтобы указать, коммиты каких веток следует показывать, используйте кнопку (Change which commits to show) в командной панели. Нажимая на нее или открыв ее выпадающий список, можно выбрать один из шаблонов:
  • HEAD — текущая ветка;
  • refs/**/${git_branch} — текущие локальная ветка и ветка удаленного отслеживания;
  • refs/heads/** — локальные ветки;
  • refs/remotes/** — ветки удаленного отслеживания;
  • refs/tags/** — метки;

Если вы хотите настроить другие шаблоны для показа веток, нажмите Ref Filters... в выпадающем списке кнопки (Change which commits to show).

Ссылки
Refs — это краткое название для ссылок Git. Они включают в себя:
  • Ветки;
  • Ветки удаленного отслеживания;
  • Метки.
Они все обозначаются как путь, который начинается с refs/:
  • Обозначение локальных веток начинается с refs/heads/;
  • Обозначение веток удаленного отслеживания начинается с refs/remotes/;
  • Обозначение меток начинается с refs/tags/;
Имена ссылок могут быть сокращены в том случае, если эта сокращенная форма уникальна. Например:
  • master может использоваться вместо refs/heads/master;
  • origin/master может использоваться вместо refs/remotes/origin/master;
  • v1.0.1 может использоваться вместо refs/tags/v1.0.1.
Существуют зарезервированные имена ссылок, которые используются в определенных сценариях:
  • HEAD — указывает на текущий извлеченный коммит;
  • FETCH_HEAD — указывает на результат последней операции Получить (Fetch);
  • ORIG_HEAD — указывает на коммит, который был извлечен до начала операции слияния или перебазирования.

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

Не показывать коммиты влитых веток

Стандартно панель История показывает коммиты той ветки, которую вы просматриваете, а также коммиты, выполненные в тех ветках, которые влиты в просматриваемую ветку. В результате вы видите схему веток, которая может быть довольно разветвленной.

Если коммиты, выполненные в других ветках, не важны для вас в данный момент, нажмите (Только первый родительский элемент) в командной панели. После этого вы увидите только те коммиты, которые были выполнены непосредственно в просматриваемой ветке.

Настроить внешний вид панели

Состав колонок в таблице
  1. Нажмите (Показать меню)Таблица в командной панели;
  2. Установите флажки у тех колонок, которые вы хотите видеть.
Состав подробной информации о коммите
Стандартно в нижней части панели 1C:EDT показывает область сообщения и область подробностей. Вы можете скрыть область сообщения или обе эти области.
  • Чтобы показать только область подробностей:
    1. Нажмите (Показать меню)Показать в командной панели;
    2. Снимите флажок Комментарий ревизии;
    3. Флажок Сведения о ревизии при этом должен быть установлен;
  • Чтобы скрыть обе области:
    1. Нажмите (Показать меню)Показать в командной панели;
    2. Снимите флажок Сведения о ревизии;
    3. Состояние флажка Комментарий ревизии при этом значения не имеет;
Абсолютные даты в коммитах
Стандартно в панели отображается относительная дата коммита, например, «4 days ago». Чтобы включить отображение абсолютных дат (например, 2023-10-16), снимите флажок (Показать меню)ПоказатьОтносительные даты в командной панели.
E-mail автора и коммитера
Чтобы в таблице коммитов рядом с именем автора и коммитера показывались их адреса электронной почты, нажмите (Показать меню)ПоказатьE-mail адреса в командной панели.