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

vmdwslir  于 2023-02-02  发布在  Git
关注(0)|答案(6)|浏览(912)

我必须使用这样的目录:

ProjectRoot
|---- SubDirectory1
|---- SubDirectory2(Git Repository1)
|---- SubDirectory3(Git Repository2)
|---- ...
|---- Files

但是我发现VS-code的嵌入式git函数不能自动识别git管理的子目录。
如何解决这个问题?有没有关于它的延伸?

368yc8dk

368yc8dk1#

您可以使用multi-root workspaces,而不是打开项目的根目录,您可以打开第一个单独的git repo,然后使用File-〉Add Folder to Workspace添加其他文件夹。添加完所有文件夹后,您可以使用File-〉保存Workspace As保存新的工作空间配置。

qeeaahzv

qeeaahzv2#

version 1.20 of VS Code(Jan 2018)起,VS Code已设置git.autoRepositoryDetection,允许VS Code自动检测git仓库。自本回复(2022)起,有效设置为:

  1. true
  2. false
  3. "subFolders"
  4. "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 0d1x
kuarbcqp

kuarbcqp3#

正如wgj所说,VScode假设GIT repo和工作区根目录在同一目录级别。虽然目前没有办法改变这一点,但一个可能有用的解决方案是使用项目管理器扩展,它可以轻松地打开VScode窗口到不同的git repo,并通过几次击键在它们之间切换。它也是Don Jayamanne的Git扩展包的一部分。

uoifb46i

uoifb46i4#

假设ProjectRoot不是一个git repo(您应该按照@hjpotter92的注解中的问题,现在使用普通的git命令)...
VS代码希望你的git repo(包含.git文件夹的目录)成为你的“ProjectRoot”,这意味着像“SubDirectory 1”和“SubDirectory 2”这样的目录,虽然在同一个父目录中,但实际上并不是同一个项目的一部分,也不会一起工作。

wkyowqbh

wkyowqbh5#

版本1.72(2022年9月)在发布说明中有以下内容:

源代码管理

发现嵌套的Git存储库
为了满足长期以来的功能需求,本里程碑对仓库发现进行了更改,以添加对嵌套Git仓库的支持。根据嵌套仓库的位置,您可能需要修改git.repositoryScanMaxDepth设置(默认为1级)。

brjng4g3

brjng4g36#

我也遇到过类似的问题:

- root project (git repo)
  |- subproject 1 (git repo)
  |- subproject 2 (git repo)

我想用VSCode处理所有三个回购协议。
定期打开subproject 1,然后"将子文件夹添加到工作区"选择subproject 2,然后"将子文件夹添加到工作区"选择root project
瞧:你现在可以在一个工作区中管理所有三个回购

相关问题