我必须使用这样的目录:
ProjectRoot |---- SubDirectory1 |---- SubDirectory2(Git Repository1) |---- SubDirectory3(Git Repository2) |---- ... |---- Files
但是我发现VS-code的嵌入式git函数不能自动识别git管理的子目录。如何解决这个问题?有没有关于它的延伸?
368yc8dk1#
您可以使用multi-root workspaces,而不是打开项目的根目录,您可以打开第一个单独的git repo,然后使用File-〉Add Folder to Workspace添加其他文件夹。添加完所有文件夹后,您可以使用File-〉保存Workspace As保存新的工作空间配置。
qeeaahzv2#
自version 1.20 of VS Code(Jan 2018)起,VS Code已设置git.autoRepositoryDetection,允许VS Code自动检测git仓库。自本回复(2022)起,有效设置为:
git.autoRepositoryDetection
true
false
"subFolders"
"openEditors"
"git.autoRepositoryDetection": "subFolders"
kuarbcqp3#
正如wgj所说,VScode假设GIT repo和工作区根目录在同一目录级别。虽然目前没有办法改变这一点,但一个可能有用的解决方案是使用项目管理器扩展,它可以轻松地打开VScode窗口到不同的git repo,并通过几次击键在它们之间切换。它也是Don Jayamanne的Git扩展包的一部分。
uoifb46i4#
假设ProjectRoot不是一个git repo(您应该按照@hjpotter92的注解中的问题,现在使用普通的git命令)...VS代码希望你的git repo(包含.git文件夹的目录)成为你的“ProjectRoot”,这意味着像“SubDirectory 1”和“SubDirectory 2”这样的目录,虽然在同一个父目录中,但实际上并不是同一个项目的一部分,也不会一起工作。
git
.git
wkyowqbh5#
版本1.72(2022年9月)在发布说明中有以下内容:
源代码管理
发现嵌套的Git存储库为了满足长期以来的功能需求,本里程碑对仓库发现进行了更改,以添加对嵌套Git仓库的支持。根据嵌套仓库的位置,您可能需要修改git.repositoryScanMaxDepth设置(默认为1级)。
git.repositoryScanMaxDepth
brjng4g36#
我也遇到过类似的问题:
- root project (git repo) |- subproject 1 (git repo) |- subproject 2 (git repo)
我想用VSCode处理所有三个回购协议。定期打开subproject 1,然后"将子文件夹添加到工作区"选择subproject 2,然后"将子文件夹添加到工作区"选择root project瞧:你现在可以在一个工作区中管理所有三个回购
subproject 1
subproject 2
root project
6条答案
按热度按时间368yc8dk1#
您可以使用multi-root workspaces,而不是打开项目的根目录,您可以打开第一个单独的git repo,然后使用File-〉Add Folder to Workspace添加其他文件夹。添加完所有文件夹后,您可以使用File-〉保存Workspace As保存新的工作空间配置。
qeeaahzv2#
自version 1.20 of VS Code(Jan 2018)起,VS Code已设置
git.autoRepositoryDetection
,允许VS Code自动检测git仓库。自本回复(2022)起,有效设置为:true
false
"subFolders"
"openEditors"
默认值是
true
,它会在上面的文件夹和子文件夹中查找git repos,"subFolders"
设置会将搜索限制在子文件夹中,"openEditors"
设置会将搜索限制在任何打开的VS代码编辑器中打开的repos中。考虑到这些选项,我建议在根工作区的settings.json文件中添加一个条目。这个条目可以在<workspace_root>/. vscode/settings. json中找到,您可以在其中添加
"git.autoRepositoryDetection": "subFolders"
。您也可以使用“Workspace”设置集来完成此操作。或者通过从“文件-〉首选项-〉设置”找到的设置编辑器并搜索“git.autoRepositoryDetection”来获取VS代码的所有“用户”设置设置,然后通过顶部的“User”和“Workspace”选项卡选择是为所有VS代码工作区还是只为正在工作的工作区设置它。(见图片)x1c 0d1xkuarbcqp3#
正如wgj所说,VScode假设GIT repo和工作区根目录在同一目录级别。虽然目前没有办法改变这一点,但一个可能有用的解决方案是使用项目管理器扩展,它可以轻松地打开VScode窗口到不同的git repo,并通过几次击键在它们之间切换。它也是Don Jayamanne的Git扩展包的一部分。
uoifb46i4#
假设ProjectRoot不是一个git repo(您应该按照@hjpotter92的注解中的问题,现在使用普通的
git
命令)...VS代码希望你的git repo(包含
.git
文件夹的目录)成为你的“ProjectRoot”,这意味着像“SubDirectory 1”和“SubDirectory 2”这样的目录,虽然在同一个父目录中,但实际上并不是同一个项目的一部分,也不会一起工作。wkyowqbh5#
版本1.72(2022年9月)在发布说明中有以下内容:
源代码管理
发现嵌套的Git存储库
为了满足长期以来的功能需求,本里程碑对仓库发现进行了更改,以添加对嵌套Git仓库的支持。根据嵌套仓库的位置,您可能需要修改
git.repositoryScanMaxDepth
设置(默认为1级)。brjng4g36#
我也遇到过类似的问题:
我想用VSCode处理所有三个回购协议。
定期打开
subproject 1
,然后"将子文件夹添加到工作区"选择subproject 2
,然后"将子文件夹添加到工作区"选择root project
瞧:你现在可以在一个工作区中管理所有三个回购