一个解决方案的多个Git存储库

时间:2017-07-04 12:18:48

标签: git visual-studio visual-studio-2017

我正在研究多个Git回购拆分的解决方案。

每个项目都有自己的Git存储库,工具使用所需的工具库构建工作区并生成解决方案文件。这是我公司的工作框架。

例如:

<root>
├─── solution.sln (generated by checkout tool)
├─── project group 1
│       ├─── project 1.1
|       |       ├─── .git
|       |       └─── <project files>
│       └─── project 1.2
|               ├─── .git
|               └─── <project files>
└─── project group 2
        ├─── project 2.1
        |       ├─── .git
        |       └─── <project files>
        └─── project 2.2
                ├─── .git
                └─── <project files>

请注意,根目录中没有repo(项目不是子模块)。

Visual Studio似乎只能在 Team Explorer 视图中连接到一个 repo。但是,我有时会编辑多个项目中的文件。

我希望(至少)有一个关于当前解决方案(即所有回购)的更改的聚合视图。如果可能的话,我希望能够从该视图中看到差异。

JetBrain&#39; Rider这样做但是现在,我更喜欢能够坚持使用Visual Studio。

这有延伸吗?

2 个答案:

答案 0 :(得分:1)

我编写了一个命令行工具来管理多个存储库。你可以看到所有repos的状态,包括编辑状态,与远程分支的关系等。它还可以从任何工作目录批量执行命令。

您还可以对存储库进行分组。对于您的项目结构,您可以运行

gita add -a <root>

这将自动生成分层组:

  • root:包含所有存储库
  • root-project-group-1:repo 1.1 和 1.2
  • root-project-group-2:存储库 2.1 和 2.2

然后gita ll rootgita ll root-project-group-1等会显示相关信息。 gita <command> root 将在根组中的 repos 上批量运行命令。您当然也可以从任何工作目录在指定的存储库上运行命令。

还有其他功能,例如设置上下文、定义自定义命令等。安装是pip3 install -U gita。您可以在 github 上找到更多信息。

enter image description here

答案 1 :(得分:0)

听起来像Visual Studio这个git submodule plugin。假设您正在使用子模块。