Думайте о локальном репозитории git как о родительской папке. Он включает в себя все (отслеживаемые) файлы в этой папке или подпапках.
В вашем решении могут быть ссылки, указывающие на другие папки, помимо этого репозитория git. Фактически, проект / решение 2 уже имеет отдельное репозиторий git, так что это говорит мне, что он находится в другой папке.
У вас есть несколько способов решить эту проблему, но для начала вы, скорее всего, для начала хотите удалить проект 2 из решения 1. Затем решите, как вы хотите добавить проект 2 к решению 1.
Просто оставьте им отдельные репозитории!
Самый простой ответ - это просто оставить им отдельные репозитории. Вы можете изменять их независимо и обновлять их в собственных репозиториях - однако, как вы заметили, вероятно, с этим могут возникнуть некоторые проблемы, если вы используете собственный интерфейс VS git - я думаю, вам придется переключаться между решениями.
Большим недостатком этого является то, что git не будет автоматически отслеживать, какая версия проекта 2 используется при любой фиксации решения 1. Вам понадобится версия, явно указанная где-то (хотя я думаю, что она, вероятно, где-то в конфигурации решения?). Я бы не стал полагаться на конфигурацию решения для отслеживания базового управления версиями для вас - гораздо лучше, если бы все это надежно отслеживалось непосредственно git. С точки зрения системы контроля версий другие решения лучше.
Просто скопируйте папку поверх
Простейшее решение для управления версиями проекта 2 - это просто скопировать папку проекта 2 из собственной папки / git репо в папку / git репо для решения 1 . Сначала удалите его из своего решения, затем скопируйте его и прочтите проект 2 из нового места.
После этого вы можете добавить его как новый проект в решение 1 и все ссылки на него будет к этой локальной копии.
Однако обратная сторона заключается в том, что теперь решение 1 / проект 2 и исходный проект 2 в отдельном репо расходятся. Если на данный момент проект 2 предназначен только для решения 1, это, вероятно, нормально.
Сделать проект 2 подмодулем
Немного более сложное решение - сделать репо для проекта 2 подмодулем репо для решения 1. Это добавит его как папку в иерархию папок вашего решения 1, поэтому это выглядит так же, как предыдущее решение, но есть небольшая дополнительная работа, чтобы понять, как обновить подмодуль.
В основном, при этой настройке добавляется отдельное git репо со ссылкой на правильную фиксацию в этом репо для использования в любой момент времени. Вы можете обновить репо 2 полностью отдельно или изменить его прямо в подмодуле, сделать новые коммиты и т. Д. c., Но это отдельные репозитории, при этом git отслеживает, какая версия репо 2 (какая фиксация) c.
В прошлый раз, когда я использовал Visual Studio, я не верю, что его собственный git интерфейс поддерживает подмодули. Я не уверен, что сейчас. Возможно, вам потребуется научиться управлять ими из командной строки или с помощью отдельного визуального инструмента GUI Git, например GitExtensions (только на Windows, для v3 +).