.gitignore 不要忽略被忽略的子文件夹中的某个文件名

问题描述 投票:0回答:2

我的项目有许多(当前有 2 个)名为 .vscode/ 的子文件夹,我需要 .gitignore 忽略该子文件夹及其所有文件,除了名为 launch.json 的那个之外

我的.gitignore是这样的

.vscode
.vscode/
.vscode/*
**/.vscode/*
**/.vscode
!.vscode/launch.json

它正确地忽略了所有 .vscode 子文件夹和文件,我已经使用它很多天/提交了。但现在我想使用

!
运算符,以便让该文件夹内的所有 launch.json 文件进行版本控制,但当我在任何 launch.json 文件中进行更改时,它不起作用,Git 继续不继续检测变化。

git github gitlab version-control gitignore
2个回答
1
投票

.gitignore
文件是从上到下解析的,所以你必须首先声明排除项,如下所示:

!.vscode/launch.json
.vscode
.vscode/
.vscode/*
**/.vscode/*
**/.vscode

0
投票

正如 @eftshift0 在评论中提到的,您可以使用

git add --force <path/filename>

强制暂存被忽略的文件

或者,如果您需要忽略多个级别的

.vscode
文件夹,您可以将所有作品压缩到一个跨越每个文件夹的单个文件夹中,并忽略所有文件夹的 json。

**/.vscode/*
!.vscode/launch.json
© www.soinside.com 2019 - 2024. All rights reserved.