如何在 Git 不同分支中对通常在gitignore中的 .vscode 进行版本管理?

新手上路,请多包涵

在 git 不同分支上有不同的工作目标,应当如何对 .vscode 这种配置文件进行版本管理

例如在分支 A 上想要配置的 settings.json 中的 cmake.buildDirectorybuildA,分支 B 为buildB,诸如此类的要求。

当然我们可以通过配置tasks.json来实现类似的功能,但是感觉还是有点半自动

一般的仓库会把 .vscode 放在 gitignore 中,但是这种工作配置文件确实需要随着 checkout 不同分支而发生变化,确实需要这样的版本管理功能。

  1. git hooks: 例如checkout,switch之后把某个 folder 的内容 copy 过来,手动版本管理
  2. vscode tasks: 利用tasks完成1中内容,还是在手动版本管理
阅读 1.3k
1 个回答

一个错误的认知点就是:“开发工具产生的配置目录都需要直接忽略掉”

常见的 .idea、.vscode、.eclipse 这些目录,虽然都是开发工具产生的,但是他们其中有些配置是可以进入版本控制的。

如果你注意过 idea 的一些配置,就会发现他有些配置上面会有一个 Shared 选项,他就会生成一些文件到 .idea 目录下,除此之外还有其他的一些配置项,这些文件你是可以添加到 VCS(版本控制系统) 中去与其他的团队成员共享的。

VS Code 也是同理,打开 Visual Studio Code User and Workspace Settings 的配置第二段就能看到:

VS Code stores workspace settings at the root of the project in a .vscode folder. This makes it easy to share settings with others in a version-controlled (for example, Git) project.

VS Code 将工作区设置存储在项目的根中 .vscode 文件夹。这使得在版本控制(例如,Git)项目中与其他人共享设置变得很容易。

换句话说,这里面部分文件就是可以放到 VCS 中去的。 打开 gitignore.io 选择 visual studio code ,就可以生成一份为 VS Code 生成的 .gitignore 文件。

# Created by https://www.toptal.com/developers/gitignore/api/visualstudiocode
# Edit at https://www.toptal.com/developers/gitignore?templates=visualstudiocode

### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets

# Local History for Visual Studio Code
.history/

# Built Visual Studio Code Extensions
*.vsix

### VisualStudioCode Patch ###
# Ignore all local history of files
.history
.ionide

# End of https://www.toptal.com/developers/gitignore/api/visualstudiocode

其实就能看到一些 ! 开头的(不排除),这些就是可以添加到版本控制里面去的

!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets

所以,根据你自己的需要,把这些文件添加到 VCS 中即可。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏