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存储库的Visual Studio解决方案_Git_Visual Studio_Version Control_Solution Explorer - Fatal编程技术网

来自多个Git存储库的Visual Studio解决方案

来自多个Git存储库的Visual Studio解决方案,git,visual-studio,version-control,solution-explorer,Git,Visual Studio,Version Control,Solution Explorer,我们在Git上有两个不同的存储库,它们需要在VisualStudio中结合起来形成解决方案 每个项目下的文件可能来自两个不同的存储库。我需要确保当我进行更改时,它会更新正确存储库中的更改(也就是说,其他存储库根本不会察觉到),并为我提供向特定存储库添加新文件的选项 如果可以做到这一点,如何实现呢?您可以使用子模块来实现它。将一个存储库视为mainRepo,另一个视为subRepo 基于mainprepo并在其中添加子repo,使用git子模块add subRepo的_URL 只需对所需文件进行更

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

每个项目下的文件可能来自两个不同的存储库。我需要确保当我进行更改时,它会更新正确存储库中的更改(也就是说,其他存储库根本不会察觉到),并为我提供向特定存储库添加新文件的选项


如果可以做到这一点,如何实现呢?

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

  • 基于mainprepo并在其中添加子repo,使用
    git子模块add subRepo的_URL
  • 只需对所需文件进行更改。您不需要注意文件来自哪个存储库
  • 在本地mainRepo中,使用git commit–a–m“输入您的评论”,然后可以提交来自mainRepo的修改文件
  • 在subRepo(
    cd foldername
    )中,您还可以使用
    git commit–a–m“输入您的注释”
    ,这样就可以提交来自mairepo的修改文件
  • 这可能与您所想的有所不同,但它确实为您节省了更新更改的正确存储库


    有关子模块的更多详细信息,请参阅。

    现在使用Project Manager扩展就很容易了。(至少在VisualStudio代码中是这样,我怀疑在VS中也是这样,因为VS是VSC的超集)

    这是我在VS代码中所做的,应该与在VisualStudio中所做的类似

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

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

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

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

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

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

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

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

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

    一旦您完成了所有这些(实际上比听起来容易),您就可以作为独立对象访问这两个存储库,提交到正确的存储库,但是如果您愿意的话,您可以并行处理它们。可以通过在新窗口中打开第二个工作区来完成此操作


    希望这能有所帮助。

    为什么要将一个项目的文件存储在不同的repo中?第4点不应该说subRepo吗?根据以下链接:;VSIDE似乎没有处理子模块——虽然这篇文章的日期是2014年,所以不确定,但我希望现在它的处理在VisualStudio中不可用