Вам когда-нибудь приходилось работать над решением с проектами, размещенными в разных репозиториях Git? Раньше вам приходилось либо использовать несколько экземпляров Visual Studio, либо полагаться на внешние инструменты Git. Начиная с Visual Studio 2022 Preview 3, вы можете включить функцию preview поддержки нескольких репозиториев, которая позволит вам работать с одним решением с проектами в нескольких репозиториях и контрибьютить в них из одного экземпляра Visual Studio.

Скачать Visual Studio 2022 Preview

Самый простой способ включить поддержку нескольких репозиториев - использовать CTRL+Q, «Preview» и открыть панель функций предварительного просмотра. Прокрутите до «Включить поддержку нескольких репо» и установите флажок. Эта функция все еще находится в стадии предварительной версии, а это означает, что мы прилагаем все усилия, чтобы добавить дополнительную поддержку в следующих выпусках. А пока мы полагаемся на ваши отзывы и мнение сообщества, чтобы создать то, что вам нужно.

Панель функций в Visual Studio 2022 Preview
Панель функций в Visual Studio 2022 Preview

Открытое решение с проектами в разных репозиториях

Если у вас уже есть решение с проектами, размещенными в разных репозиториях Git, просто откройте свое решение с помощью начального окна Visual Studio или с помощью меню «Файл» → «Открыть» → «Проект/решение», и Visual Studio автоматически активирует до 10 репозиториев одновременно. Вы сможете узнать, активировала ли Visual Studio ваши различные репозитории Git, посмотрев на средство выбора репозитория в строке состояния (расположенное в правом нижнем углу), где будет указано количество имеющихся у вас активных репозиториев. Активные репозитории выделены жирным шрифтом в средстве выбора репозиториев.

Средство выбора репозитория в строке состояния
Средство выбора репозитория в строке состояния

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

Фиксация изменений

Окно изменений Git автоматически отслеживает изменения в разных репозиториях. Все, что вам нужно сделать, это написать коммит и нажать кнопку «Commit All Repos», чтобы все ваши изменения были зафиксированы. Вы также можете выбрать этап внесения изменений в первую очередь, что позволит вам выбрать репозитории, в которые вы хотите выполнить коммит. В качестве альтернативы вы можете использовать средство выбора репозитория в верхней части окна Git Changes, чтобы сосредоточиться и зафиксировать изменения в одном репозитории за раз.

Изменения в нескольких репозиториях
Изменения в нескольких репозиториях

Поддержка нескольких репозиториев для Amend, Stash, переключения ветвей и сетевых операций

Поддержка нескольких репозиториев для Amend, Stash, переключения ветвей и сетевых операций, включая Pull, Push, Fetch и Sync, появится в окне Git Changes в будущих итерациях. Чтобы использовать любую из этих операций сейчас, вам нужно будет использовать средство выбора репозитория, чтобы сосредоточиться на одном репозитории за раз. В качестве альтернативы для ветвления вы можете полагаться на окно репозитория Git, как показано в следующем разделе.

Использование средства выбора репозитория, чтобы сосредоточиться на одном репозитории
Использование средства выбора репозитория, чтобы сосредоточиться на одном репозитории

Управление ветвями и репозиториями

Окно репозитория Git распознает все активные репозитории и обеспечивает возможность просмотра и управления между репозиториями. Вы можете просматривать, создавать, управлять и переключать ветви прямо из этого окна. Детали фиксации, встроенный diff и входящие / исходящие фиксации всех функций, как и в случае с отдельными репозиториями.

Поддержка нескольких репозиториев в окне репозитория Git
Поддержка нескольких репозиториев в окне репозитория Git

Комментарии (3)


  1. ARad
    18.08.2021 11:31

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

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

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

    Т.е. требуется проверять не внес ли ты изменения в базовые проекты из другого репозитория, теперь это будет делать студия сама, что конечно удобнее.


  1. anonymous
    00.00.0000 00:00


    1. TSEO1
      19.08.2021 20:09

      Т.е. поддержки git-субмодулей нет получается, или есть - из статьи не очень понятно, поэтому аналогично, только Git CLI.