python - 带有一个顶级 git 存储库的 VS Code 多根工作区
问题描述
我正在开发一个需要多个 Google Cloud Functions的项目。每个 Cloud Function 都有自己的 virtualenv,因为每个都有自己的 Python 依赖项。所有云函数都是相关的,因此我已将包含云函数代码的每个文件夹添加到单个(多根)VSCode 工作区。我想将所有云功能的代码放在同一个 Git 存储库中,因为它们是相关的并且可以一起工作。因此,我的 .git 文件夹位于我的多根工作区的顶部。我的文件夹结构如下所示:
.
├── .git
├── .gitignore
├── .pylintrc
├── .pytest_cache
├── .vscode
│ └── settings.json
├── func-a
│ ├── .vscode
│ │ ├── launch.json
│ │ └── settings.json
│ ├── main.py
│ ├── requirements.txt
│ ├── schema.json
│ └── service-account.json
├── project.code-workspace
└── func-b
├── .pytest_cache
├── .vscode
│ ├── launch.json
│ └── settings.json
├── main.py
├── requirements.txt
├── service-account.json
└── test_local.py
我的问题是我无法在 VS Code 中看到(因此无法编辑) .gitignore 文件,因为 VS Code 不允许您将单个文件添加到工作区(仅限文件夹)。相反,如果我尝试将整个折叠(包含 func-a 和 func-b)添加到工作区,那么我会遇到无法为每个 Cloud Function 设置不同的解释器(virtualenvs)的问题,而 VS Code 似乎强迫我对整个工作区使用相同的 Python 解释器。
有没有更好的方法来做我想做的事情?
解决方案
git sparse-checkout
您可以简单地定义两个工作区,每个项目一个,每个项目使用(或更经典.git/info/sparse-checkout
的)在自己的 Git 工作树中签出:
这个想法是通过以下方式稀疏地签出回购协议:
- 和您需要的
.gitignore
任何其他文件 - 只有
func-x
你想要的文件夹
然后,您可以为第一次稀疏结帐定义一个 VSCode 工作区。
对第二个项目重复该过程。
推荐阅读
- javascript - Why I am getting Uncaught ReferenceError is not defined error in jquery
- corda - 使用 CordaService 从 CorDapp 访问数据库
- intellij-idea - 在 Intellij 中用黄瓜配置量角器
- php - RatchetPHP 无法循环向所有客户端发送消息
- wordpress - 在 wordpress woocommerce 上减小图像大小
- angularjs - 邮递员 POST 工作,但 AngularJS 投掷 404
- python - 为什么 datetime.date 不提供 strptime?
- arrays - 如何为单个帖子指定多个作者,然后计算每个作者相关的帖子?
- podio - 获取项目时 Podio API 抛出错误
- windows - mainCRTStartup() 不调用 main()