如何只在本地忽略文件,不修改项目 .gitignore?

将个人未跟踪路径添加到当前仓库的 info/exclude 中。规则留在本地克隆中,不随项目提交。

1. 找到当前仓库的 exclude 文件

在仓库根目录运行以下命令,解析实际路径;这也适用于使用 Git 文件或关联 worktree 的仓库:

git rev-parse --git-path info/exclude

用编辑器打开返回的文件;如不存在,按需创建父目录和文件,并保留已有条目。普通仓库中通常是 .git/info/exclude。

2. 添加个人规则

将下面的示例追加到返回的 exclude 文件中。它们忽略名为 local-notes 的目录及根目录 dev.local.json,语法与 .gitignore 相同。

团队共享的项目规则应放进纳入版本控制的 .gitignore;跨仓库个人规则放进全局忽略文件。worktree 可能共享仓库元数据,因此这里的“本地”不保证每个 worktree 都有独立配置。

local-notes/
/dev.local.json

文件为什么被全局规则忽略?

3. 验证并检查跟踪状态

创建示例中的未跟踪文件,检查规则来源:

git check-ignore -v -- local-notes/draft.txt dev.local.json

输出应指向 info/exclude。已被跟踪的文件不会因此隐藏修改。Git 的 assume-unchanged 和 skip-worktree 标志不是通用解决办法;按项目需要使用已提交的配置模板与被忽略的本地副本。

如何忽略已经被 Git 跟踪的文件?

准确行为与更多细节请参阅官方说明: Git 官方文档 · git rev-parse 官方文档 · Git 常见问题官方文档