如何在git目录/嵌套子目录中只允许特定文件*.py、*.json、*.sh?

如何在git目录/嵌套子目录中只允许特定文件*.py、*.json、*.sh?,git,Git,在我的git repo中,我有一个目录,其中可能包含嵌套的子目录。我希望在这些嵌套子目录中只允许*.py、*.sh和*.json 我尝试将以下内容添加到.gitignore: /trials/* !/trials/README /experimental/**/ !/trials/**/*.py !/trials/**/*.sh 但它不允许我添加trials/foo/bar.py之类的内容。尝试更改/试用期/**/.py至/试验/***.py: ... !/trials/**/*.py !/t

在我的git repo中,我有一个目录,其中可能包含嵌套的子目录。我希望在这些嵌套子目录中只允许*.py、*.sh和*.json

我尝试将以下内容添加到.gitignore:

/trials/*
!/trials/README
/experimental/**/
!/trials/**/*.py
!/trials/**/*.sh

但它不允许我添加trials/foo/bar.py之类的内容。

尝试更改
/试用期/**/.py
/试验/***.py

...
!/trials/**/*.py
!/trials/**/*.sh

一旦文件夹被忽略,您就不能排除文件。
换言之:

正确的方法是从gitignore规则中排除文件,即首先将文件夹列为白名单:

/trials/*
!/trials/**/
然后可以排除文件(在相同的
.gitignore
文件中):


还可以使用git check ignore-v--afile查看git ignore规则适用于给定文件。

前导斜杠可以吗?@JonathanLeffler前导斜杠将规则锚定到git repo的顶部文件夹。这似乎是OP在试用文件夹中想要的。好的。有道理。
!/trials/**/*.py
!/trials/**/*.sh