gpt4 book ai didi

git - 递归忽略特定目录中除 .json 文件之外的所有文件

转载 作者:太空狗 更新时间:2023-10-29 14:35:26 24 4
gpt4 key购买 nike

我有一个类似于下面的文件结构:

foo/bar.foo
node_modules/foo/bar.json
node_modules/foo/bar/foo.bar

我想做的是忽略 node_modules 文件夹中的所有文件,json 文件除外,这样我在我的 repo 中得到以下文件结构:

foo/bar.foo
node_modules/foo/bar.json

我试图找到一种简单的方法来做到这一点,但我还没有完全做到这一点。

这是我在 .gitignore 中想到的:

# ignore everything inside node_modules
node_modules/*

# But descend into directories
!node_modules/**/*.json

实现预期结果的最优雅方式是什么?

附言我不知道我在做什么。

最佳答案

gitignore文件,他们说:

It is not possible to re-include a file if a parent directory of that file is excluded.

这为您的规则失败的原因提供了直觉。您可以使用一些 xargs 魔法手动添加缺少的 json 文件。每当添加新包时,您都必须运行它,但一旦它们被跟踪,一切都会正常工作。

 find node_modules/* -name *.json -print |xargs git add -f

我使用 Git 2.18.0 进行了测试,并确认您忽略的目录中的文件在以这种方式添加后可以正常工作。对于被 .gitignore 规则排除的更深路径,上面的 -f 参数是必需的。

关于git - 递归忽略特定目录中除 .json 文件之外的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52416391/

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