当前位置: 首页 > 知识库问答 >
问题:

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

孔茂
2024-09-29

在 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个答案

陈欣荣
2024-09-29

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

常见的 .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 中即可。

 类似资料:
  • 问题内容: 如何配置Windows命令对话框以在其中运行不同的python版本?例如,当我键入时,它运行python 2.7,而当我键入时,它运行python 3.3?我知道如何为一个版本而不是两个版本配置环境变量?我的意思是类似Linux终端的东西。 问题答案: Python的3.3主要介绍Python启动的Windows是安装到作为和安装程序。安装程序还会创建与和的关联。然后添加或作为第一行。

  • 我第一次在git上工作。我已经将我的分支推到github上,它将所有库和文档推到github上。现在我可以做什么,如何使用gitignore命令来避免再次出现同样的错误。

  • 我已经为 WSL 安装了 Ubuntu 和 Debian。当我使用 VS Code 远程开发打开 WSL 工作区时,它始终打开 Ubuntu。如何在 VS 代码中使用 WSL 在 Debian 安装下打开工作区?

  • git 不同分支对比代码,能使用BCompare 对比吗? git 不同分支对比代码,能使用BCompare 对比吗?记得有一次看过使用工具对比的办法,直接输入分支,就能生成一套目录,然后对比,效率很高,现在都是把不同分支下载下来对比,好麻烦 想实现输入命令就能直接对比不同分支的效果有没有办法呢?

  • 问题内容: Windows提供了用于应用程序和DLL版本信息的资源文件。资源文件包括版本,版权和制造商等信息。 我们有一个共享库,并且喜欢添加版本信息。我们如何在带有共享库的Linux上做到这一点? 问题答案: 简短的版本是您通过库的名称执行此操作。阅读http://tldp.org/HOWTO/Program- Library-HOWTO/shared-libraries.html的 第3章以及

  • 问题内容: 我在ElasticSearch字段中有一个我不想分析的字段,即应逐字存储和比较它。这些值将包含字母,数字,空格,破折号,斜杠以及其他字符。 如果我在此字段的映射中未提供分析器,则默认值仍会使用标记程序,该标记程序会将我的逐字字符串分成大量单词。我不要 是否有一个超级简单的分析器,基本上不分析?还是有另一种方式表示不应分析此字段? 我只创建索引,我什么也没做。我可以在其他字段中使用“英语