多个Git仓库的Visual Studio解决方案

25

我们在Git上有两个不同的存储库,需要将它们结合起来形成Visual Studio中的解决方案。

每个项目下的文件可能来自两个不同的存储库。我需要确保当我进行更改时,它会更新正确存储库中的更改(也就是说,另一个存储库不应该注意到它),并且还要让我选择将新文件添加到特定的存储库中。

如果可能的话,如何实现这一点?


为什么您想要将一个项目的文件存储在不同的代码库中? - Eddie Chen - MSFT
1
Visual Studio 2022即将推出一个名为“多仓库支持”的功能,可能会在这些情况下有所帮助。https://devblogs.microsoft.com/visualstudio/multi-repo-support-in-visual-studio/ - ryancdotnet
2个回答

14
您可以使用子模块来实现此目的。将一个仓库视为主仓库,另一个仓库视为子仓库。
1. 在主仓库中添加子仓库,使用git submodule add subRepo’s_URL 2. 只需更改您想要的文件,不需要关注文件来自哪个仓库 3. 在本地主仓库中,使用git commit -a -m '输入您的注释',然后可以提交主仓库的修改文件 4. 在子仓库(cd [subRepoFolderName])中,也可以使用git commit -a -m '输入您的注释',这样就可以提交子仓库的修改文件
这可能与您所想的不同,但它确实可以让您免于考虑要更新哪个仓库的更改。
有关子模块的更多详细信息,请参见此处

根据此链接:https://dev59.com/X18d5IYBdhLWcg3wVQ4U:~:text=As%20was%20mentioned%2C%20Visual%20Studio,manage%20an%20environment%20like%20this.;VS IDE似乎无法处理子模块 - 尽管该帖子发布于2014年,所以不确定,但我希望现在已经解决了。 - gawkface
今天是2021年,Visual Studio仍不支持子模块 :( - 23W

-3

使用项目管理器扩展现在变得非常容易。(至少在Visual Studio Code中是这样的,我认为在VS中也是这样的,因为VS是VSC的超集)

以下是我在VS Code中所做的,Visual Studio应该类似。

假设您已经设置了Git类型的repo,并且对于必须保持不同的项目的每个部分,您都有一个单独而明确的顶级存储库。

在GitHub(或类似网站)中,创建所需的两个存储库并根据需要导入文件。

如果存储库/工作区已经存在于本地开发计算机上,请确保存储库完全更新。

在Visual Studio Code中安装Project Manager扩展程序。

在开发计算机上,您可以创建一个“顶级”文件夹,用于整个项目,然后在VSC中打开该文件夹。

然后将该文件夹保存为“项目”。 此时,您应该将存储库“克隆”到顶级项目文件夹内的文件夹中。您将存储库克隆到新位置,因为移动存储库很麻烦,只会引起麻烦。

将每个克隆的存储库保存为“工作区”

此时,您将拥有一个包含两个工作区的“项目”。

将任何未被克隆到新存储库位置的文件夹/文件根据需要移动。
完成所有这些步骤后(实际上比听起来容易),您可以独立访问两个存储库,提交会发送到正确的存储库,但是如果需要,您可以同时(在某种程度上)处理它们。通过将第二个工作区打开到新窗口来完成此操作。
希望这可以帮助到您。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接