如何在VS Code中为子文件夹单独初始化仓库且不检测父目录仓库?
问题描述
我在一个从GitHub克隆的项目的./extensions/my_extension目录开发扩展,但VS Code总是会识别到父目录的Git仓库,尝试两种方法都没解决:
- 创建包含主项目和扩展的工作区:VS Code自动在源代码管理里打开原项目仓库,关掉后还是会被检测到
- 单独打开扩展文件夹:弹出“父文件夹中存在Git仓库”的提示,就算把相关设置改成“never”,重启VS Code甚至电脑后,提示依然会出现
不想每次保存文件都把扩展文件夹复制到独立目录,求可行的解决办法。
解决方案
1. 给扩展目录初始化独立Git仓库
打开终端进入./extensions/my_extension,执行命令:
git init
VS Code会优先识别当前目录的Git仓库,不会再去检测父目录的仓库。如果不需要把扩展代码提交到Git,后续可以不管这个仓库,或者加个.gitignore文件屏蔽不需要追踪的内容就行。
2. 让VS Code忽略父目录的Git仓库
打开VS Code设置(按Ctrl+,),搜索git.ignoreRepositories,点击“在settings.json中编辑”,把父项目仓库的绝对路径加进去。比如原项目根目录是/Users/xxx/original-project,就这么写:
"git.ignoreRepositories": [ "/Users/xxx/original-project/.git" ]
保存设置后重启VS Code,就不会再弹出父仓库的检测提示了。
3. 用Git配置关联原仓库但独立显示(可选)
如果需要让扩展目录关联原项目的Git仓库,但不想VS Code加载父仓库的源代码管理,可以在扩展目录执行:
git config core.worktree "../../"
这样当前目录会关联到原项目仓库,但VS Code会把它当成独立工作区,不会自动加载父仓库的代码管理内容。
内容的提问来源于stack exchange,提问作者Underscore
相关产品推荐
相关产品推荐

