总结其他答案
建议通常排除 .vscode 文件夹,但保留允许其他开发人员重新创建共享设置的选定 JSON 文件。
要包括的设置示例:
- 运行测试套件的语言特定测试配置 (
settings.json)
- 用于 linter 和代码格式化工具的扩展设置,以强制执行此 repo 中使用的语言规则 (
settings.json)
- 运行和调试配置 (
launch.json)
- 共享任务 - 如果使用 VS Code (
tasks.json) 进行管理
请注意,某些设置可以存储在用户设置或工作区文件中,或从.vscode 文件夹传输到其中。见下文。
.gitignore 代码示例
这里是 https://gitignore.io 建议的设置。您可以在那里搜索“VisualStudioCode”以获取最新推荐的.gitignore 文件。对于我的大部分新存储库,我使用这个网站作为 .gitignore 的起点:
# Created by https://www.gitignore.io/api/visualstudiocode
# Edit at https://www.gitignore.io/?templates=visualstudiocode
### VisualStudioCode ###
.vscode/* # Maybe .vscode/**/* instead - see comments
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
### VisualStudioCode Patch ###
# Ignore all local history of files
**/.history
# End of https://www.gitignore.io/api/visualstudiocode
在上面的.gitignore 文件中,.vscode/* 行(注意:关于是否应该包括 * 的一些争论 - 请参阅 cmets;.vscode/**/* 也可能会更好地忽略嵌套文件夹)说要排除.vscode 文件夹中的所有内容,但随后 !.vscode/a_specific_file 行告诉 git“不要”忽略该文件夹中的某些特定文件(settings.json、launch.json 等)。最终结果是 .vscode 文件夹中的所有内容都被排除在外,但在其他行之一中特别命名的文件除外。
其他因素
在您的 repo 中包含 .vscode 文件夹实际上不会伤害任何使用不同 IDE(或文本/代码编辑器)的人。
但是,如果这些文件包含需要特定于您的环境的通用设置(例如安装 repo 的绝对路径),则可能会导致其他使用 VS Code 的人出现问题,或者某些设置可能无法正确加载。关键是要避免保存本地环境的自定义设置,只共享所有人都可以使用的设置。
例如,如果 IDE 设置文件具有到 repo 或任何文件/库等的绝对路径,那么这是不好的,不要共享。但是,如果所有引用都是相对的,那么它们应该适用于使用 repo 的任何人(不过,请注意 Windows/Unix 之间的路径规范差异......)。
关于用户、工作区和文件夹设置
注意:.vscode 文件夹中的设置文件通常会在您更改 文件夹 版本的设置时更新 - 但这似乎取决于如何单独的扩展是编码的,因为我遇到了这个规则的多个例外。
- 如果您对 user 设置进行更改,它们通常存储在其他位置(位置取决于操作系统设置,通常在主目录中)。
- 如果您对 workspace 设置进行更改,它们通常存储在您当前使用的
*.code-workspace 文件中。如果您没有工作区(而是直接打开了一个文件夹),那么他们可能会转到 .vscode 文件夹,但总的来说,这可能取决于拥有该设置的扩展程序。
因此,您通常应该将个人 PC 的自定义设置放入 user 设置中,并将通用设置放入工作区或文件夹设置中。
- 异常示例:Python 扩展更新
.vscode/settings.json 以在pythonpath 设置下拥有当前文件夹的绝对路径,这使其特定于当前PC。