我的项目有许多(当前有 2 个)名为 .vscode/ 的子文件夹,我需要 .gitignore 忽略该子文件夹及其所有文件,除了名为 launch.json 的那个之外
我的.gitignore是这样的
.vscode
.vscode/
.vscode/*
**/.vscode/*
**/.vscode
!.vscode/launch.json
它正确地忽略了所有 .vscode 子文件夹和文件,我已经使用它很多天/提交了。但现在我想使用
!
运算符,以便让该文件夹内的所有 launch.json 文件进行版本控制,但当我在任何 launch.json 文件中进行更改时,它不起作用,Git 继续不继续检测变化。
.gitignore
文件是从上到下解析的,所以你必须首先声明排除项,如下所示:
!.vscode/launch.json
.vscode
.vscode/
.vscode/*
**/.vscode/*
**/.vscode
正如 @eftshift0 在评论中提到的,您可以使用
git add --force <path/filename>
强制暂存被忽略的文件
或者,如果您需要忽略多个级别的
.vscode
文件夹,您可以将所有作品压缩到一个跨越每个文件夹的单个文件夹中,并忽略所有文件夹的 json。
**/.vscode/*
!.vscode/launch.json