You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mercurial中忽略文件夹内文件却保留文件夹?已尝试glob语法无效

解决Mercurial中忽略文件夹内文件但保留文件夹的问题

我明白你的困扰——本来只想忽略photos和photos/thumbs里的图片文件,结果连文件夹本身都被Mercurial无视了。其实问题出在Mercurial的一个特性上:它不会追踪空文件夹。当你用glob规则把文件夹里的所有目标文件都忽略后,这个文件夹就变成了空的,Mercurial自然不会把它纳入版本控制,看起来就像被忽略了一样。

下面是具体的解决步骤:

1. 确认你的.hgignore配置是正确的

你原来写的glob规则其实没问题,它只会匹配指定的图片文件,不会直接忽略文件夹:

photos/*.jpg
photos/*.gif
photos/thumbs/*.jpg
photos/thumbs/*.gif

如果想简化写法,也可以用扩展glob(Mercurial默认启用该扩展):

photos/**/*.{jpg,gif}

这个规则会匹配photos目录下所有子文件夹里的jpg和gif文件,效果和你原来的规则一致,但更简洁。

2. 在需要保留的文件夹中添加.hgkeep文件

为了让Mercurial追踪这些文件夹,我们需要在每个目标文件夹里放一个被Mercurial追踪的空文件,约定俗成的名字是.hgkeep。

执行以下命令创建这个文件:

# 在photos目录下创建.hgkeep
touch photos/.hgkeep

# 在photos/thumbs目录下创建.hgkeep
touch photos/thumbs/.hgkeep

3. 提交.hgkeep文件

把这两个空文件加入版本控制并提交:

hg add photos/.hgkeep photos/thumbs/.hgkeep
hg commit -m "Add .hgkeep files to preserve photos folders"

这样操作之后,Mercurial会因为.hgkeep文件的存在而持续追踪photos和photos/thumbs文件夹,同时忽略你指定的所有图片文件,完美实现你想要的效果。

内容的提问来源于stack exchange,提问作者Paolo Rossi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:08:31