Панель «Репозитории Git»

Панель Репозитории Git — это главный инструмент, который позволяет управлять одновременно несколькими репозиториями.

Эта панель входит в стандартный состав перспективы Git.

Открыть панель «Репозитории Git»

Нажмите Окно > Показать панель > Другое… > Git > Репозитории Git в главном меню.

1C:EDT заполняет эту панель автоматически, например при клонировании репозиториев. Также вы можете вручную добавить нужные вам репозитории в эту панель.

Структура информации

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

Внутри репозитория содержится несколько узлов. Например, это узлы Ветки и Метки, содержащие в себе все ветки и все метки, которые есть в репозитории.

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

Аналогичным образом в узле Метки имена сокращаются за счет исключения префикса refs/tags/.

Узел Ссылки содержит остальные ссылки, которые не являются ветками или метками. Например, это такие часто используемые ссылки как HEAD и FETCH_HEAD.

Узел Рабочий каталог содержит каталог файловой системы, в котором находится разрабатываемое приложение.

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

Репозитории можно объединять в группы.

Условные обозначения

Командная панель

  • (Добавить существующий локальный репозиторий Git)добавляет существующий локальный репозиторий Git в панель Репозитории Git;
  • (Клонировать репозиторий Git)полностью копирует исходный репозиторий, включая всю его историю. Для каждой локальной ветки клона автоматически создается удаленная ветка для отправки изменений в исходный репозиторий и получения изменений из него;
  • (Создать новый репозиторий Git)создает новый локальный репозиторий;
  • (Обновить)панель обновляется автоматически с некоторым интервалом. Эта команда позволяет обновить панель вручную, не дожидаясь автоматического обновления;
  • (Связать с редактором)связывает панель с редактором таким образом, что они начинают работать синхронно. В панели автоматически выделяется тот элемент, который редактируется;
  • (Иерархическое отображение ветки)включает и выключает иерархический показ веток в виде вложенных папок;
  • (Отображать последние коммиты ветки)включает и выключает отображение последнего коммита ветки в конце ее имени;
  • (Показать меню)открывает выпадающее меню, в котором содержатся дополнительные команды для панели;
    • Добавить репозиторий...добавляет существующий локальный репозиторий Git в панель Репозитории Git;
    • Клонировать репозиторий...полностью копирует исходный репозиторий, включая всю его историю. Для каждой локальной ветки клона автоматически создается удаленная ветка для отправки изменений в исходный репозиторий и получения изменений из него;
    • Создать репозиторий...создает новый локальный репозиторий;
    • Создать группу репозиториевсоздает группу репозиториев;
    • Вставить путь к репозиторию или URIдобавляет в панель существующий репозиторий по пути, содержащемуся в буфере обмена;
    • Обновитьпанель обновляется автоматически с некоторым интервалом. Эта команда позволяет обновить панель вручную, не дожидаясь автоматического обновления;
    • Связать с редакторомсвязывает панель с редактором таким образом, что они начинают работать синхронно. В панели автоматически выделяется тот элемент, который редактируется;
    • Иерархическое представление ветоквключает и выключает иерархический показ веток в виде вложенных папок;
    • Показывать последний коммит веткивключает и выключает отображение последнего коммита ветки в конце ее имени;

Контекстное меню репозитория

  • Переключить Напереключает проект на другую ветку. Во вложенном меню для выбора предлагаются локальные ветки текущего репозитория, а также создание новой ветки и выбор из других элементов репозитория (ветки удаленного отслеживания, метки и др.);
  • Коммит...открывает панель Индексирование Git для фиксации изменений проекта в локальном репозитории;
  • Спрятанные измененияподменю содержит следующие команды:
    • Спрятать изменения...запоминает текущие изменения, незафиксированные в локальном хранилище, и временно откладывает их, возвращая проект к состоянию, зафиксированному в локальном хранилище;
    • № <название отложенных изменений>возвращает изменения, отложенные ранее, в рабочий каталог проекта;
  • Push to originотправляет изменения в удаленный репозиторий с именем origin;
  • Получить из originполучает изменения из удаленного репозитория с именем origin;
  • Отправить ветку 'имя ветки'...отправляет выбранную ветку в удаленный репозиторий. При этом можно выбрать репозиторий или создать новый, выбрать отправляемую ветку, а также настроить для нее конфигурации отправки и получения изменений из удаленного репозитория;
  • Получить и слитьполучает изменения из исходного репозитория и вливает их в текущую ветку;
  • Получить и слить...получает изменения из выбранного удаленного репозитория и вливает их в текущую ветку;
  • Удаленный репозиторийподменю содержит следующие команды:
    • Отправить...отправляет изменения в выбранный удаленный репозиторий;
    • Отправить метки...отправляет выбранные метки в удаленный репозиторий;
    • Получить...получает изменения из выбранного удаленного репозитория;
  • Слить...вливает выбранную ветку в текущую ветку;
  • Перебазировать...переносит изменения текущей ветки в выбранную ветку;
  • Отменить...отменяет изменения, выполненные в рабочем каталоге;
  • Импортировать проекты...импортирует проекты из файловой системы или архива;
  • Переименовать ветку...переименовывает ветку;
  • Группы репозиториевподменю содержит следующие команды:
    • Create Repository Groupсоздает группу репозиториев;
    • Remove from Repository Groupвозвращает репозиторий на верхний уровень;
    • Move to 'имя группы'перемещает репозиторий в группу;
  • Включить LFS (в локальном репозитории)не используется при разработке приложений «1С:Предприятия». Про настройку LFS читайте здесь;
  • Показать в системном проводникеоткрывает ресурс в системном проводнике;
  • Показать вподменю содержит следующие команды:
    • Историяпоказывает коммиты репозитория в панели История;
    • Индексирование Gitпоказывает изменения репозитория в панели Индексирование Git;
    • Журнал ссылок Gitпоказывает ссылки репозитория в панели Журнал ссылок Git;
    • Свойствапоказывает конфигурацию репозитория в панели Свойства. Доступен только просмотр значений;
  • Очистить...удаляет из рабочего каталога файлы и папки, которые не находятся под версионным контролем;
  • Собрать мусорвыполняет ряд задач по обслуживанию текущего репозитория, таких как сжатие ревизий файлов (для уменьшения дискового пространства и повышения производительности), удаление недоступных объектов, которые могли быть созданы в результате предыдущих фиксаций, упаковка ссылок, сокращение журнала ссылок и др. Эту команду можно использовать, например, для однократной оптимизации и очистки репозитория после неоптимального массового импорта;
  • Удалить репозиторий из панелиисключает репозиторий из списка;
  • Удалить репозиторий...удаляет репозиторий;
  • Добавить подмодуль...добавляет в репозиторий новый подмодуль;
  • Скопировать путь в буфер обменакопирует полный путь к этому ресурсу в буфер обмена;
  • Свойстваоткрывает конфигурацию репозитория в панели Свойства. Доступно изменение значений;

Контекстное меню удаленного репозитория

  • Создать удаленный репозиторий...создает удаленный репозиторий;
  • Отправитьотправляет изменения в этот удаленный репозиторий;
  • Получитьполучает изменения из этого удаленного репозитория;
  • Настроить получение...позволяет настроить параметры получения из удаленного репозитория;
  • Настроить отправку...позволяет настроить параметры отправки в удаленный репозиторий;
  • Удалить удаленный репозиторийисключает удаленный репозиторий из списка.
  • Показать в — открывает удаленный репозиторий в панелях История или Свойства;

Контекстное меню группы репозиториев

  • Переключить Напереключает проект на другую ветку. Во вложенном меню для выбора предлагаются локальные ветки текущего репозитория, а также создание новой ветки и выбор из других элементов репозитория (ветки удаленного отслеживания, метки и др.);
  • Удалить группуудаляет группу репозиториев;
  • Переименовать группупереименовывает группу репозиториев;
  • Получить и слитьполучает изменения из исходного репозитория и вливает их в текущую ветку;
  • Добавить репозиторий...добавляет существующий локальный репозиторий Git в панель Репозитории Git;
  • Клонировать репозиторий...полностью копирует исходный репозиторий, включая всю его историю. Для каждой локальной ветки клона автоматически создается удаленная ветка для отправки изменений в исходный репозиторий и получения изменений из него;
  • Создать репозиторий...создает новый локальный репозиторий;
  • Вставить путь к репозиторию или URIдобавляет в панель существующий репозиторий по пути, содержащемуся в буфере обмена;

Контекстное меню ветки

  • Извлечьпереключает проект на эту ветку;
  • Отправить ветку...отправляет выбранную ветку в удаленный репозиторий. При этом можно выбрать репозиторий или создать новый, выбрать отправляемую ветку, а также настроить для нее конфигурации отправки и получения изменений из удаленного репозитория;
  • Создать ветку...создает новую ветку средствами Git (без связи с информационной базой);
  • Переименовать ветку...переименовывает ветку;
  • Настроить ветку...изменяет конфигурацию исходного репозитория для ветки;
  • Удалить ветку...удаляет ветку стандартными средствами Git;
  • Синхронизировать с рабочим каталогомсинхронизирует ветку с рабочим каталогом;
  • Compare with Working TreeНе используется при разработке приложений «1С:Предприятия». Сравнивает ветку с рабочим каталогом;
  • Слитьвливает эту ветку в текущую ветку;
  • Слить...вливает выбранную ветку в текущую ветку;
  • Перебазироватьперебазирует изменения текущей ветки в эту ветку;
  • Отменить...отменяет изменения, выполненные в рабочем каталоге;
    • Мягко (только HEAD)указатель HEAD будет указывать на этот коммит, а индекс и рабочий каталог останутся без изменений;
    • Средне (HEAD и индекс)указатель HEAD будет указывать на этот коммит, индекс будет соответствовать этому коммиту, а рабочий каталог останется без изменений;
    • Жестко (HEAD, индекс и рабочий каталог)указатель HEAD будет указывать на этот коммит, индекс и рабочий каталог будут соответствовать этому коммиту;
  • Открыть коммитоткрывает коммит в панели просмотра;
  • Показать в — открывает ветку в панели Журнал ссылок Git, в панелях История или Свойства;

Контекстное меню двух выделенных веток

Контекстное меню метки

  • Создать метку...создает метку;
  • Отправить метки...отправляет выбранные метки в удаленный репозиторий;
  • Filter Tags...позволяет показать в дереве только те метки, которые содержат введенную подстроку;
  • Извлечьпереключает проект на эту ветку;
  • Отправить метку...отправляет метку в удаленный репозиторий;
  • Создать ветку...создает новую ветку средствами Git (без связи с информационной базой);
  • Удалить метку...удаляет метку;
  • Синхронизировать с рабочим каталогомсинхронизирует ветку с рабочим каталогом;
  • Compare with Working TreeНе используется при разработке приложений «1С:Предприятия». Сравнивает ветку с рабочим каталогом;
  • Слитьвливает эту ветку в текущую ветку;
  • Отменить...отменяет изменения, выполненные в рабочем каталоге;
  • Открыть коммитоткрывает коммит в панели просмотра;
  • Показать в — открывает ветку в панели Журнал ссылок Git, в панелях История или Свойства;

Контекстное меню узла «Подмодули»

Контекстное меню рабочего каталога

  • Добавить в индексдобавляет в индекс все изменения, выполненные в рабочем каталоге;
  • Импортировать проекты...импортирует проекты из файловой системы или архива;
  • Показать в системном проводникеоткрывает ресурс в системном проводнике;
  • Очистить...удаляет из рабочего каталога файлы и папки, которые не находятся под версионным контролем;
  • Скопировать путь в буфер обменакопирует полный путь к этому ресурсу в буфер обмена;
  • Сравнитьподменю содержит следующие команды:
    • HEAD-ревизияНе используется при разработке приложений «1С:Предприятия». Сравнивает этот ресурс в рабочем каталоге и в последнем коммите;
    • Ветка, метка или ссылка...Не используется при разработке приложений «1С:Предприятия». Сравнивает рабочий каталог с выбранной веткой, меткой или ссылкой;
    • Коммит...Не используется при разработке приложений «1С:Предприятия». Сравнивает рабочий каталог с выбранным коммитом;

Работа со списком репозиториев

Иерархическое представление веток

Ветки можно просматривать в виде линейного списка (стандартное представление) или в виде иерархического списка, состоящего из вложенных папок. Такое представление удобно использовать при большом количестве веток.

Чтобы включить иерархический показ веток, нажмите (Иерархическое отображение ветки) в командной панели.

Отображение последнего коммита ветки

Стандартно в конце имени ветки 1C:EDT показывает имя последнего коммита этой ветки, это стандартное поведение.

Чтобы отключить показ последнего коммита нажмите (Отображать последние коммиты ветки) в командной панели.

Группы репозиториев

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

Вложенные группы репозиториев не поддерживаются.

Создать группу репозиториев
Создать группу репозиториев можно несколькими способами:
  • В командной панели нажмите (Показать меню) - Создать группу репозиториев;
  • В контекстном меню репозитория нажмите Группы репозиториев Create Repository Group.
Переместить репозиторий в группу
Переместить репозиторий в группу можно несколькими способами:
  • Перетащите репозиторий в нужную группу;
  • В контекстном меню репозитория нажмите Группы репозиториев Move to 'имя группы'.
Вернуть репозиторий на верхний уровень
Переместить репозиторий из группы обратно на верхний уровень можно несколькими способами:
  • Перетащите репозиторий на белое неиспользуемое пространство панели;
  • В контекстном меню репозитория нажмите Группы репозиториев Remove from Repository Group.
Переименовать группу репозиториев

Нажмите Переименовать группу в контекстном меню.

Удалить группу репозиториев

Нажмите Удалить группу в контекстном меню.

Содержащиеся в группе репозитории не удаляются, они возвращаются на верхний уровень.