fossil scm中添加忽略文件或文件夹

在 Fossil 中忽略文件/文件夹,核心是配置 ignore-glob,支持命令行临时设置版本化文件持久化两种方式。

一、命令行设置(临时/本地)

fossil set 配置 ignore-glob,支持逗号分隔的通配符(glob)规则。

1. 基础用法

# 忽略所有 .log 文件、build/ 目录、临时文件 *.tmp
fossil set ignore-glob "*.log, build/, *.tmp"

# 查看当前忽略规则
fossil set ignore-glob

2. 常用 glob 规则

  • *.log:忽略所有 .log 文件
  • build/:忽略 build 目录及所有子内容
  • temp/*:忽略 temp 目录下所有文件(不递归子目录)
  • **/node_modules:忽略所有层级的 node_modules 目录
  • *.o, *.obj:忽略编译产物

3. 追加规则(不覆盖)

# 追加忽略 .env 文件
fossil set ignore-glob "$(fossil set ignore-glob), .env"

二、版本化文件(推荐,团队共享)

在仓库根目录创建 .fossil-settings/ignore-glob 文件,每行一个规则,提交后全团队生效。

1. 操作步骤

# 1. 创建目录(不存在时)
mkdir -p .fossil-settings

# 2. 编辑忽略规则文件
cat > .fossil-settings/ignore-glob << 'EOF'
*.log
build/
*.tmp
.env
**/node_modules
EOF

# 3. 提交到仓库(共享给团队)
fossil add .fossil-settings/ignore-glob
fossil commit -m "Add ignore rules"

2. 优先级

.fossil-settings/ignore-glob > 命令行 fossil set ignore-glob


三、验证忽略规则

fossil extras 查看未被跟踪且未被忽略的文件,验证规则是否生效。

# 查看所有未跟踪文件(排除 ignore-glob)
fossil extras

# 临时覆盖 ignore-glob,查看所有未跟踪文件(含被忽略的)
fossil extras --override-ignore-glob

四、强制添加已忽略文件

默认 fossil add 会跳过 ignore-glob 匹配项,用 --force 强制添加。

fossil add --force build/important.log

五、常见场景示例

1. 忽略编译产物

# 命令行
fossil set ignore-glob "*.o, *.obj, *.exe, build/, dist/"

# 或 .fossil-settings/ignore-glob
*.o
*.obj
*.exe
build/
dist/

2. 忽略 IDE/编辑器配置

.vscode/
.idea/
*.swp
*.swo
.DS_Store

3. 忽略环境文件

.env
.env.local
.env.*.local

需要我帮你生成一份适用于前端/后端项目的通用 .fossil-settings/ignore-glob 模板吗?

posted @ 2026-03-07 22:00  卓能文  阅读(3)  评论(0)    收藏  举报