【问题标题】:Visual Studio Solution from multiple Git repositories来自多个 Git 存储库的 Visual Studio 解决方案
【发布时间】:2017-03-25 15:10:43
【问题描述】:

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

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

如果可以做到的话,如何做到这一点?

【问题讨论】:

  • 为什么要将一个项目的文件存储在不同的仓库中?

标签: git visual-studio version-control solution-explorer


【解决方案1】:

您可以使用子模块来实现它。将一个存储库视为 mainRepo,将另一个视为 subRepo。

  1. 基于mainRepo并在其中添加subRepo,使用git submodule add subRepo’s_URL
  2. 只需对您想要的文件进行更改。您无需关注文件来自哪个存储库
  3. 在本地 mainRepo 中,使用git commit –a –m ‘input your comment’,然后可以提交来自 mainRepo 的修改文件
  4. 在 subRepo (cd [subRepoFolderName]) 中,您也可以使用git commit –a –m ‘input your comment’,因此可以提交来自 subRepo 的修改文件。

这可能与您想的不同,但它确实可以帮助您从哪个存储库中更新更改。

关于子模块的更多详细信息,您可以参考here

【讨论】:

  • 根据此链接:stackoverflow.com/questions/26951252/…。 ; VS IDE 似乎没有处理子模块 - 虽然那篇文章的日期是 2014 年所以不确定,但我希望它现在处理
  • 今天是 2021 年,Visual Studio 还不支持子模块 :(
【解决方案2】:

现在使用 Project Manager 扩展可以轻松实现。 (至少在 Visual Studio Code 中是这样,我怀疑在 VS 中也是如此,因为 VS 是 VSC 的超集)

这是我在VS Code中做的,在Visual Studio中应该是类似的

假设您设置了一个 Git 类型的存储库,并且您为项目的每个部分都有一个单独且不同的顶级存储库,必须保持不同。

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

如果本地开发机器上已经存在存储库/工作区,请确保存储库完全是最新的。

在 Visual Studio 代码中安装项目管理器扩展。

在开发机器上,您为整个项目创建一个“顶级”文件夹,然后在 VSC 中打开该文件夹。

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

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

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

根据需要将任何未克隆的文件夹/文件移动到新的存储库位置。

完成所有这些后,(实际上比听起来容易),您可以将两个存储库作为独立对象访问,提交到正确的存储库,但您可以并排处理它们,(有点像) 如果你希望。您可以通过在新窗口中打开第二个工作区来完成此操作。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多