Should I commit the .vscode folder to source control?

时间:2015-10-06 08:15:30

标签: visual-studio-code

Is the .vscode folder meant to be committed to source control?

In a fresh project, the folder is empty, except the settings.json file. What kind of things would go into this folder? Is it machine-specific, developer-specific like the .vs folder and thus not be committed? Or should all developers share this folder and thus it should be committed?

The comment at the top of the file .vscode/settings.json states:

// Place your settings in this file to overwrite default and user settings.
{
}

This seems to imply that the folder should contain project-specific settings and thus be included in source. Also, this post on UserVoice seems to imply some typings would go in there, also suggesting that it should be committed.

8 个答案:

答案 0 :(得分:200)

如果要与团队共享设置,任务配置和调试配置,请检入.vscode文件夹。我认为,如果要在团队中强制执行设置,通常可以与团队共享设置(例如,空格与制表符)。我们VS Code团队也分享调试和任务特定设置,因为我们希望我们的团队拥有VS Code的同一组调试目标和任务目标。

顺便说一下,您不需要在项目中设置.vscode文件夹进行设置。您还可以在用户级别配置设置。

答案 1 :(得分:23)

在commit / ignore之间有第三个聪明的选项:使用.default后缀提交。

例如,您可以将settings.json添加到.gitignore,然后提交settings.json.default,就像通常的做法(在我的团队中).env个文件一样。

我在Commit editor settings to version control?

的视频Mattias Petter Johansson中接受了这个建议

答案 2 :(得分:9)

  • 永远不会提交.vscode/settings.json - 除了search.exclude这个奇怪的例外。如果您确实需要,请务必将您希望强制执行的项目特定设置仅用于其他开发人员。
  • 用于验证,格式化,编译使用其他文件,如package.json.eslinttsconfig.json
  • 唯一有意义的.vscode包含用于调试的复杂启动配置。
  • 请注意,您的系统中可能存在可以将私人信息放在那里的第三方扩展程序!

你不能做的是复制&将整个settings.json内容文件粘贴到.vscode/settings.json。我看到有些人这样做,提交文件是一个暴行。在这种情况下,您不仅会打破其他工作空间,而且最糟糕的是,您将对用户强制执行您不应该喜欢美学,用户界面和体验的设置。你可能会破坏他们的环境,因为有些是非常依赖系统的。想象一下,我有视力问题,因此我的editor.*用户设置是个性化的,当我打开你的项目时,视觉效果会发生变化。想象一下,我有视觉问题,我需要个性化用户编辑器。*设置才能工作。我会生气的。

如果你是认真的,请不要提交.vscode/settings.json。通常,对于特定项目(如验证,编译)有用的设置是有意义的,但通常您可以使用特定的工具配置文件,如.eslint,tsconfig.json,.gitignore,package.json。我猜vscode的作者刚刚添加了文件以简化新手的体验,但是如果你想要认真的话就不要!

唯一的例外,在非常特殊的情况下可能是search.exclude

答案 3 :(得分:6)

答案是“NO”,因为 .vscode 文件夹适用于此编辑器,如果让其他人感到困惑,您不应将这些个人设置推送到repo,这样您就可以将其添加到项目中 .gitignore 文件忽略更改

答案 4 :(得分:4)

与上述相同:否。

作为说明,请考虑Git 2.19(2018年第三季度)选择的方法,该方法添加了一个脚本(在contrib/中),以帮助VSCode的用户更好地使用Git代码库。

换句话说,生成.vscode内容(如果尚不存在),请不要对其进行版本控制。

请参见commit 12861e2commit 2a2cdd0commit 5482f41commit f2a3b68commit 0f47f78commit b4d991dcommit 58930fd,{{3} },commit dee3382(2018年7月30日)由commit 54c06c6
(由Johannes Schindelin (dscho)Junio C Hamano -- gitster --中合并,2018年8月15日)

  

contrib:添加脚本以初始化VS Code配置

     

VS Code是一个轻量级但功能强大的源代码编辑器,可在您的桌面上运行,并且可用于Windows,macOS和Linux。
  在其他语言中,它通过扩展支持C / C ++,该扩展不仅提供构建和调试代码的功能,还提供Intellisense的功能,即代码感知的完成和类似的优点。

     

此修补程序添加了一个脚本,该脚本有助于设置环境以使其与VS Code一起有效:只需运行Unix shell脚本contrib/vscode/init.sh,即可创建相关文件,并打开Git的顶级文件夹。 VS Code中的源代码

答案 5 :(得分:3)

总结其他答案

  • 建议通常排除.vscode文件夹,但保留一些允许团队成员重新创建设置的选定JSON文件

要使用的.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/*
!.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

其他因素以及如何自行解决...

包含.vscode文件夹实际上不会伤害任何使用不同IDE(或文本/代码编辑器)的人,只要它包含不需要了解有关您的环境的详细信息(例如安装回购协议的绝对路径)。关键是要避免保存针对本地环境的自定义设置,而要共享每个人都可以使用的设置。

例如,如果IDE设置文件具有到存储库或任何文件/库等的绝对路径,那么那是不好的,不要共享。但是,如果所有引用都是相对的,则它们应该对使用该存储库的任何人都有效(不过,例如,请注意Windows / Unix之间的路径规范差异)。

答案 6 :(得分:2)

除了这里的争论之外,为什么不只是看练习呢?

到目前为止,我发现拥有.vscode的最大项目之一是 Mozilla Firefox 。 看起来Firefox团队共享their common tasks

因此,只要您知道自己在做什么,保持.vscode并不是一个坏主意。

当我看到共享.vscode的其他大型项目时,我将更新此帖子。

答案 7 :(得分:1)

一种简单的保存设置而不在项目git存储库中提交设置的简单方法是创建一个工作区并将文件夹添加到其中。

创建工作空间时,需要保存文件<canvas id="drawLineCanvas" style="position: absolute; z-index: 0; display: inline;" width="1450" height="1600"></canvas> <div id="mainwork"> <iframe name="inlineCommentingFrame" id="inlineCommentingFrame" scrolling="no" class="imageFrame" style="position: absolute; z-index: -1;" src="index1.jpg" frameborder="0"></iframe> <div name="commentDiv" id="commentDiv" style="margin-left:70%; z-index: 1;"></div> </div> 。该文件包含自定义设置,只需将此文件保存到git存储库中即可,并且可以随意将code-workspace添加到.vscode文件中。