gpt4 book ai didi

git - **和*在glob匹配中的区别(.gitignore)

转载 作者:IT王子 更新时间:2023-10-29 01:27:40 27 4
gpt4 key购买 nike

我有以下目录结构和文件。

pw-spec/
|-- event_spec.coffee
|-- event_spec.js
|-- integration
| `-- service
| |-- auth_spec.coffee
| |-- auth_spec.js
| |-- chat_spec.coffee
| |-- chat_spec.js
| |-- transport_spec.coffee
| `-- transport_spec.js
|-- message_spec.coffee
|-- message_spec.js
|-- pw_spec.coffee
|-- pw_spec.js
|-- run.coffee
|-- run.html
|-- run.js
|-- service
| |-- auth_spec.coffee
| |-- auth_spec.js
| |-- chat_spec.coffee
| |-- chat_spec.js
| |-- stream_spec.coffee
| `-- stream_spec.js
|-- spec.coffee
|-- spec.js
`-- stub
|-- stream.coffee
|-- stream.js
|-- transport.coffee
`-- transport.js

4 directories, 27 files

我想忽略 pw-spec 目录中任何位置的所有 *.js 文件。

但是,将以下模式添加到 .gitignore 并不能解决问题:

pw-spec/*.js
pw-spec/**/*.js

问题是第二个只匹配恰好1级的js文件在树的深处,而我想匹配 pw-spec 下的所有 js 文件。

ls pw-spec/**/*.js

产生 [1]:

pw-spec/service/auth_spec.js
pw-spec/service/chat_spec.js
pw-spec/service/stream_spec.js
pw-spec/stub/stream.js
pw-spec/stub/transport.js

如你所见

pw-spec/integration/service/auth_spec.js
pw-spec/integration/service/chat_spec.js
pw-spec/integration/service/transport_spec.js

[1] 中缺失。

最佳答案

根据您的需要,针对这种情况有两种方法。

一个解决方案是把

# generated files
*.js

在 pw-spec/.gitignore 中。

第二种解决方案是:

/pw-spec/*.js
/pw-spec/*/*.js
/pw-spec/*/*/*.js

在主 .gitignore 文件中依此类推。如果添加了更多子目录,这种方法很脆弱。

我通常更喜欢将 .gitignore 文件与生成我忽略的文件的 Makefile 放在同一级别。

关于git - **和*在glob匹配中的区别(.gitignore),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8832729/

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