我需要处理这样的目录:
ProjectRoot
|---- SubDirectory1
|---- SubDirectory2(Git Repository1)
|---- SubDirectory3(Git Repository2)
|---- ...
|---- Files
但是我发现VS-code的嵌入式git功能不能自动识别那些由git管理的子目录。
如何解决这个问题?有相关扩展吗?
我需要处理这样的目录:
ProjectRoot
|---- SubDirectory1
|---- SubDirectory2(Git Repository1)
|---- SubDirectory3(Git Repository2)
|---- ...
|---- Files
但是我发现VS-code的嵌入式git功能不能自动识别那些由git管理的子目录。
如何解决这个问题?有相关扩展吗?
你可以使用多根工作区。不要打开项目的根目录,而是打开第一个单独的git repo,然后使用文件->添加文件夹到工作区添加其他repo。一旦全部添加完毕,可以使用文件->另存为工作区来保存新的工作区配置。
git.autoRepositoryDetection
,允许VS Code自动检测git存储库。截至本回答(2022年),有效的设置为:
true
false
"subFolders"
"openEditors"
true
,它将在上面的文件夹和子文件夹中查找git存储库。 "subFolders"
设置仅限于在子文件夹中搜索。而"openEditors"
设置将限制搜索任何打开的VS Code编辑器中的存储库。"git.autoRepositoryDetection": "subFolders"
。您还可以使用"Workspace"设置集进行此操作,或通过从"File -> Preferences -> Settings"打开设置编辑器并搜索"git.autoRepositoryDetection"设置,然后选择是否要为所有VS Code工作区或仅为您正在工作的工作区设置它,通过顶部的"User"和"Workspace"选项卡。(见图片) git.autoRepositoryDetection
= true
和 git.repositoryScanMaxDepth
设置得比我需要的更深,仍然只有 9 个 repos 中的 3 个在源代码控制面板中显示。 - Rachelgit.autoRepositoryDetection
设置为 subFolders
,并将 git.repositoryScanMaxDepth
设置为 -1
后,成功地重新启动了 VS Code。同时,将 gitlens.advanced.repositorySearchDepth
也设置为相同的值似乎也是一个不错的选择。 - theSparky版本1.72(2022年9月)在发布说明中提到:
源代码控制
为了解决长期以来的功能请求,本次里程碑我们对存储库发现进行了更改,以支持嵌套的Git存储库。根据嵌套存储库的位置,您可能需要修改
git.repositoryScanMaxDepth
设置(默认值为1级)。
我有一个类似的问题:
- root project (git repo)
|- subproject 1 (git repo)
|- subproject 2 (git repo)
子项目1
,然后“添加子文件夹到工作区”,选择子项目2
,然后再次“添加子文件夹到工作区”,选择根项目
。如wgj所说,VScode默认假定GIT仓库与工作空间根目录在同一级别。尽管当前没有办法改变这种情况,但一个潜在有用的解决方法是使用项目管理扩展,该扩展可轻松打开不同git仓库的VScode窗口,并通过几个按键来在它们之间切换。它也是Don Jayamanne的Git扩展包的一部分。