Visual Studio 来自多个 Git 存储库的解决方案
Visual Studio Solution from multiple Git repositories
我们在 Git 上有两个不同的存储库,它们需要结合起来形成 Visual Studio 中的解决方案。
每个项目下的文件可能来自两个不同的仓库。我需要确保当我进行更改时,它会更新正确存储库中的更改(也就是说,另一个存储库根本不应该感知它)并且还给我一个将新文件添加到特定存储库的选项。
如果可以的话,如何实现?
可以使用子模块来实现。将一个存储库视为 mainRepo,将另一个存储库视为 subRepo。
- 基于 mainRepo 并在其中添加 subRepo,使用
git submodule add subRepo’s_URL
- 只需根据需要更改文件即可。您无需关注文件来自哪个存储库
- 在本地mainRepo中,使用
git commit –a –m ‘input your comment’
,然后可以提交来自mainRepo的修改文件
- 在subRepo(
cd [subRepoFolderName]
)中,你也可以使用git commit –a –m ‘input your comment’
,这样subRepo修改后的文件就可以提交了。
这可能与您想的不同,但它确实为您节省了要更新更改的正确存储库。
关于子模块的更多细节,可以参考here。
现在使用项目管理器扩展程序很容易。 (至少在 Visual Studio 代码中是这样,我怀疑在 VS 中也是这样,因为 VS 是 VSC 的 super-set)
这是我在VS Code中做的,在Visual Studio
中应该类似
假设您设置了一个 Git-type 存储库,并且您有一个单独且不同的 top-level 存储库用于项目的每个部分,这些部分必须保持不同。
在 GitHub(或类似的)中,您创建所需的两个存储库并根据需要导入文件。
如果 repositories/workspaces 已经存在于本地开发机器上,请确保存储库完全是最新的。
在 Visual Studio 代码中安装项目管理器扩展。
在开发机器上,为整个项目创建一个“顶级”文件夹,然后在 VSC 中打开该文件夹。
然后将该文件夹另存为“项目”
此时,您应该将存储库“克隆”到 top-level 项目文件夹内的文件夹中。您将存储库克隆到新位置,因为移动存储库很麻烦,只会带来麻烦。
将每个克隆的存储库保存为“工作区”
此时,您有一个包含两个工作区的“项目”。
根据需要将任何未被克隆的 folders/files 移动到新的存储库位置。
完成所有这些操作后,(实际上比听起来容易),您可以将两个存储库作为独立对象访问,提交到正确的存储库,但您可以对它们进行处理 side-by-side,(有点)如果你愿意的话。为此,您可以将第二个工作区打开到一个新的 window.
希望这对您有所帮助。
我们在 Git 上有两个不同的存储库,它们需要结合起来形成 Visual Studio 中的解决方案。
每个项目下的文件可能来自两个不同的仓库。我需要确保当我进行更改时,它会更新正确存储库中的更改(也就是说,另一个存储库根本不应该感知它)并且还给我一个将新文件添加到特定存储库的选项。
如果可以的话,如何实现?
可以使用子模块来实现。将一个存储库视为 mainRepo,将另一个存储库视为 subRepo。
- 基于 mainRepo 并在其中添加 subRepo,使用
git submodule add subRepo’s_URL
- 只需根据需要更改文件即可。您无需关注文件来自哪个存储库
- 在本地mainRepo中,使用
git commit –a –m ‘input your comment’
,然后可以提交来自mainRepo的修改文件 - 在subRepo(
cd [subRepoFolderName]
)中,你也可以使用git commit –a –m ‘input your comment’
,这样subRepo修改后的文件就可以提交了。
这可能与您想的不同,但它确实为您节省了要更新更改的正确存储库。
关于子模块的更多细节,可以参考here。
现在使用项目管理器扩展程序很容易。 (至少在 Visual Studio 代码中是这样,我怀疑在 VS 中也是这样,因为 VS 是 VSC 的 super-set)
这是我在VS Code中做的,在Visual Studio
中应该类似假设您设置了一个 Git-type 存储库,并且您有一个单独且不同的 top-level 存储库用于项目的每个部分,这些部分必须保持不同。
在 GitHub(或类似的)中,您创建所需的两个存储库并根据需要导入文件。
如果 repositories/workspaces 已经存在于本地开发机器上,请确保存储库完全是最新的。
在 Visual Studio 代码中安装项目管理器扩展。
在开发机器上,为整个项目创建一个“顶级”文件夹,然后在 VSC 中打开该文件夹。
然后将该文件夹另存为“项目” 此时,您应该将存储库“克隆”到 top-level 项目文件夹内的文件夹中。您将存储库克隆到新位置,因为移动存储库很麻烦,只会带来麻烦。
将每个克隆的存储库保存为“工作区”
此时,您有一个包含两个工作区的“项目”。
根据需要将任何未被克隆的 folders/files 移动到新的存储库位置。
完成所有这些操作后,(实际上比听起来容易),您可以将两个存储库作为独立对象访问,提交到正确的存储库,但您可以对它们进行处理 side-by-side,(有点)如果你愿意的话。为此,您可以将第二个工作区打开到一个新的 window.
希望这对您有所帮助。