如何在VS代码中管理多个git存储库

Bra*_*haw 6 git repository visual-studio-code

我必须使用这样的目录:

ProjectRoot
| ---- SubDirectory1
| ---- SubDirectory2(Git存储库1)
| ---- SubDirectory3(Git存储库2)
| ----...
| ----文件

但是我发现VS代码的git嵌入功能无法识别那些由git git管理的子目录。

如何解决这个问题呢?是否有扩展名?

小智 13

VS Code 1.20 版本(2018 年 1 月)开始,VS Code 已经有了设置git.autoRepositoryDetection,允许 VS Code 自动检测 git 存储库。截至本回复 (2022),有效设置为:

  1. true
  2. false
  3. "subFolders"
  4. "openEditors"

默认值为true,它将在上面的文件夹和子文件夹中查找 git repos。该"subFolders"设置将搜索仅限于子文件夹。而且,该"openEditors"设置会将搜索限制为在任何打开的 VS Code 编辑器中打开的存储库。

考虑到这些选项,我建议向根工作区的 settings.json 文件添加一个条目。这可以在 <workspace_root>/.vscode/settings.json 中找到,您可以在其中添加"git.autoRepositoryDetection": "subFolders". 您还可以使用“工作区”设置集来执行此操作,或者通过从“文件 -> 首选项 -> 设置”中找到的设置编辑器并搜索“git.autoRepositoryDe​​tection”设置来执行 VS Code 的所有“用户”设置然后通过顶部的“用户”和“工作空间”选项卡选择是否要为所有 VS Code 工作区或仅为您正在工作的工作区设置它。(见图) 为工作区设置 git.autoRepositoryDe​​tection


par*_*y72 7

版本 1.72(2022 年 9 月)的发行说明中包含以下内容:

源代码控制

发现嵌套的 Git 存储库

为了解决长期存在的功能请求,在这个里程碑中,我们对存储库发现进行了更改,以添加对嵌套 Git 存储库的支持。根据嵌套存储库的位置,您可能需要修改设置git.repositoryScanMaxDepth(默认为 1 级)。


par*_*y72 6

或者,您可以使用多根工作区。您可以打开第一个单独的 git repo,然后使用 File->Add Folder to Workspace 添加其他人,而不是打开项目的根目录。添加完所有内容后,您可以执行 File->Save Workspace As 来保存新的工作区配置。


wgj*_*wgj 2

假设 ProjectRoot 不是一个 git 存储库(您应该关注 @hjpotter92 评论中的问题,并git暂时使用正常命令)...

VS Code 希望您的 git 存储库(包含.git文件夹的目录)成为您的“ProjectRoot”。这意味着像“SubDirectory1”和“SubDirectory2”这样的目录虽然位于同一父目录中,但实际上并不是同一项目的一部分,并且不会积极地一起工作。