Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
共享项目、多个解决方案、同一Git存储库_Git_Visual Studio_Version Control - Fatal编程技术网

共享项目、多个解决方案、同一Git存储库

共享项目、多个解决方案、同一Git存储库,git,visual-studio,version-control,Git,Visual Studio,Version Control,我有一个Git存储库,其中包含大约5个解决方案(.sln)。其中一些解决方案引用了相同的项目(.csproj)。例如: 解决方案1 ----项目A ----项目B ----项目C 解决方案2 ----项目B ----项目C 这里的问题是,根据当前在VisualStudioIDE中打开的解决方案,项目B没有标记为“源代码控制”。如果我对项目进行了更改,Git不会跟踪任何更改 为什么会这样?我该如何解决这个问题呢?这是由于您的git回购中没有管理项目B造成的 您可以通过查找项目B所在的目录进行双重检

我有一个Git存储库,其中包含大约5个解决方案(.sln)。其中一些解决方案引用了相同的项目(.csproj)。例如:

解决方案1

----项目A

----项目B

----项目C

解决方案2

----项目B

----项目C

这里的问题是,根据当前在VisualStudioIDE中打开的解决方案,项目B没有标记为“源代码控制”。如果我对项目进行了更改,Git不会跟踪任何更改


为什么会这样?我该如何解决这个问题呢?

这是由于您的git回购中没有管理项目B造成的

您可以通过查找项目B所在的目录进行双重检查。例如,在解决方案资源管理器中的解决方案2中->右键单击项目B->在文件资源管理器中打开文件夹。然后您将找到项目B所在的路径。该目录主要与本地git repo所在的目录不同

为了在源代码管理中添加项目B,您应该在本地git repo下复制项目B。从不同的解决方案中删除旧项目B(因为您为解决方案id添加的项目未在git中管理),然后根据需要将项目B(在本地git repo下)重新添加到不同的解决方案中


现在,项目B应该在git回购中进行管理。对项目B进行更改后,VS将显示要提交的更改。

项目B是否在解决方案1下创建?您是如何将项目B添加到解决方案2中的?如果解决方案1下的项目B是在git repo中管理的,那么git应该跟踪您对项目B所做的更改。我们不知道项目最初是在哪里创建的。也许在过去,B项目有自己的解决方案。现在的情况是,两个解决方案都包含项目B。右键单击解决方案,然后单击“添加”->“现有项目”,即可添加它们。所有项目和解决方案都在同一个git存储库下。Hi@Marina所有项目文件夹都位于同一级别。解决方案文件位于其中一些项目中。显然,我通过简单地从解决方案中删除项目并再次添加它来解决这个问题。现在的解决方案似乎是引用具有不同路径结构的项目。关键是将其他项目放在
.gittributes
.gitignore
文件旁边。