VS Code 多根工作区,带有一个顶级 git 存储库

far*_*har 6 python git virtualenv visual-studio-code google-cloud-functions

我正在开发一个需要多个 Google Cloud Functions的项目。每个 Cloud Function 都有自己的 virtualenv,因为每个 Cloud Function 都有自己的 Python 依赖项。所有云函数都是相关的,因此我已将包含云函数代码的每个文件夹添加到单个(多根)VSCode 工作区中。我想将所有云函数的代码放在同一个 Git 存储库中,因为它们是相关的并且可以协同工作。因此,我的 .git 文件夹位于多根工作区的顶部。我的文件夹结构如下所示:

\n\n
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .git\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .gitignore\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .pylintrc\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .pytest_cache\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .vscode\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 settings.json\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 func-a\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .vscode\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 launch.json\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 settings.json\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main.py\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 requirements.txt\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 schema.json\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 service-account.json\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 project.code-workspace\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 func-b\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .pytest_cache\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .vscode\n    \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 launch.json\n    \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 settings.json\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main.py\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 requirements.txt\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 service-account.json\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 test_local.py\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的问题是,我无法在 VS Code 中查看(因此无法编辑).gitignore 文件,因为 VS Code 不允许您将单个文件添加到工作区(仅限文件夹)。相反,如果我尝试将整个折叠(包含 func-a 和 func-b)添加到工作区,那么我会遇到无法为每个 Cloud Function 设置不同解释器(virtualenvs)的问题,而 VS Code 似乎强迫我在整个工作区使用相同的 Python 解释器。

\n\n

有更好的方法来做我想做的事情吗?

\n

Von*_*onC 1

git sparse-checkout您可以简单地定义两个工作区,每个项目一个,每个工作区使用(或更经典的.git/info/sparse-checkout)在自己的 Git 工作树中签出:

这个想法是通过以下方式稀疏地检查存储库:

  • 以及.gitignore您需要的任何其他文件
  • 只有func-x您想要的文件夹

然后,您可以为第一次稀疏签出定义一个 VSCode 工作区。

对第二个项目重复该过程。