Вам когда-нибудь приходилось работать над решением с проектами, размещенными в разных репозиториях Git? Раньше вам приходилось либо использовать несколько экземпляров Visual Studio, либо полагаться на внешние инструменты Git. Начиная с Visual Studio 2022 Preview 3, вы можете включить функцию preview поддержки нескольких репозиториев, которая позволит вам работать с одним решением с проектами в нескольких репозиториях и контрибьютить в них из одного экземпляра Visual Studio.
Скачать Visual Studio 2022 Preview
![](https://habrastorage.org/getpro/habr/upload_files/45d/e4c/0b7/45de4c0b7b5a71c831f80b608f9fc535.gif)
Самый простой способ включить поддержку нескольких репозиториев - использовать CTRL+Q, «Preview» и открыть панель функций предварительного просмотра. Прокрутите до «Включить поддержку нескольких репо» и установите флажок. Эта функция все еще находится в стадии предварительной версии, а это означает, что мы прилагаем все усилия, чтобы добавить дополнительную поддержку в следующих выпусках. А пока мы полагаемся на ваши отзывы и мнение сообщества, чтобы создать то, что вам нужно.
![Панель функций в Visual Studio 2022 Preview Панель функций в Visual Studio 2022 Preview](https://habrastorage.org/getpro/habr/upload_files/057/404/24e/05740424ec58ec25d2df22e296b22ef7.png)
Открытое решение с проектами в разных репозиториях
Если у вас уже есть решение с проектами, размещенными в разных репозиториях Git, просто откройте свое решение с помощью начального окна Visual Studio или с помощью меню «Файл» → «Открыть» → «Проект/решение», и Visual Studio автоматически активирует до 10 репозиториев одновременно. Вы сможете узнать, активировала ли Visual Studio ваши различные репозитории Git, посмотрев на средство выбора репозитория в строке состояния (расположенное в правом нижнем углу), где будет указано количество имеющихся у вас активных репозиториев. Активные репозитории выделены жирным шрифтом в средстве выбора репозиториев.
![Средство выбора репозитория в строке состояния Средство выбора репозитория в строке состояния](https://habrastorage.org/getpro/habr/upload_files/b75/9f6/acb/b759f6acb6166679d76c65f862569aec.png)
Вы также можете добавить проекты, размещенные в разных репозиториях, к существующему решению, щелкнув правой кнопкой мыши свое решение в обозревателе решений и выбрав «Добавить» → «Существующий проект».
Фиксация изменений
Окно изменений Git автоматически отслеживает изменения в разных репозиториях. Все, что вам нужно сделать, это написать коммит и нажать кнопку «Commit All Repos», чтобы все ваши изменения были зафиксированы. Вы также можете выбрать этап внесения изменений в первую очередь, что позволит вам выбрать репозитории, в которые вы хотите выполнить коммит. В качестве альтернативы вы можете использовать средство выбора репозитория в верхней части окна Git Changes, чтобы сосредоточиться и зафиксировать изменения в одном репозитории за раз.
![Изменения в нескольких репозиториях Изменения в нескольких репозиториях](https://habrastorage.org/getpro/habr/upload_files/a73/f73/277/a73f73277f772e961285515cd9f36929.png)
Поддержка нескольких репозиториев для Amend, Stash, переключения ветвей и сетевых операций
Поддержка нескольких репозиториев для Amend, Stash, переключения ветвей и сетевых операций, включая Pull, Push, Fetch и Sync, появится в окне Git Changes в будущих итерациях. Чтобы использовать любую из этих операций сейчас, вам нужно будет использовать средство выбора репозитория, чтобы сосредоточиться на одном репозитории за раз. В качестве альтернативы для ветвления вы можете полагаться на окно репозитория Git, как показано в следующем разделе.
![Использование средства выбора репозитория, чтобы сосредоточиться на одном репозитории Использование средства выбора репозитория, чтобы сосредоточиться на одном репозитории](https://habrastorage.org/getpro/habr/upload_files/9ed/89a/50a/9ed89a50ace2e68e3f63ee040a9c21cf.png)
Управление ветвями и репозиториями
Окно репозитория Git распознает все активные репозитории и обеспечивает возможность просмотра и управления между репозиториями. Вы можете просматривать, создавать, управлять и переключать ветви прямо из этого окна. Детали фиксации, встроенный diff и входящие / исходящие фиксации всех функций, как и в случае с отдельными репозиториями.
![Поддержка нескольких репозиториев в окне репозитория Git Поддержка нескольких репозиториев в окне репозитория Git](https://habrastorage.org/getpro/habr/upload_files/766/654/c89/766654c895b6fbac186bc29eff5c09e0.png)
ARad
У меня часто бывает что проекты в решении зависят от базовых проектов из более базового решения, и которые находятся в отдельном репозитории.
Соответственно если я делаю изменения в базовом проекте я могу внизу переключить репозиторий на базовый, посмотреть что там изменено и сделать в него коммит.
Это конечно менее удобно чем один коммит в оба репозитория, но не требуется открывать отдельную студию.
Т.е. требуется проверять не внес ли ты изменения в базовые проекты из другого репозитория, теперь это будет делать студия сама, что конечно удобнее.