gpt4 book ai didi

git - 进入项目根目录的 .gitignore 不会被进入子目录的 .gitignores 覆盖

转载 作者:太空狗 更新时间:2023-10-29 14:12:17 27 4
gpt4 key购买 nike

在项目根目录中,我有一个 .gitignore 文件,它会忽略除 gitignore 文件之外的所有内容。这是文件的内容:

**/*
!.gitignore

然后在 implementation/xml/ 我有另一个包含以下内容的 gitignore 文件:

!**/*

然后在 implementation/xml/ant/ 我创建了一个名为 texd-odt-build.xml 完整路径的新文件 (/implementation/xml/ant/texd-odt-build.xml).

现在是第二个 gitignore 文件,它比项目根目录中的一个(gitignore 文件)更深两个文件夹。那么第二个 gitignore 应该覆盖根目录中的那个吗?但是使用 bash 我看到 texd-odt-build.xml 仍然在忽略列表中。

为了检查它,我使用了这个命令:git status --ignored。 “ child ”gitignore 不工作的原因可能是什么?

最佳答案

注意:要检查文件是否被忽略,请使用 git check-ignore :

git check-ignore -v -- afile

正如我在“How do I add files without dots in them (all extension-less files) to the gitignore file?”中提到的,使用 .gitignore 主要要记住一条规则:

It is not possible to re-include a file if a parent directory of that file is excluded. ()
(:除非在 git 2.7+ 中满足某些条件)

这意味着,当您排除所有内容 ('*') 时,您必须先将文件夹列入白名单,然后才能将文件列入白名单。

# Ignore everything under node_modules
*

# Except for the subfolders
!**/

# Except for the .gitignore
!.gitignore

然后在implementation\xml中,你可以从.gitignore中排除文件(因为它的文件夹和子文件夹已经被列入白名单)

implementation\xml\.gitignore:

!*

关于git - 进入项目根目录的 .gitignore 不会被进入子目录的 .gitignores 覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34593968/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com