HeadlinesBriefing favicon HeadlinesBriefing.com

您不知道的三个 Git 忽略文件

Hacker News •
×

我多年来一直在仓库中携带未跟踪的文件 — — markdown 笔记、代理计划 — — 因为将它们添加到 .gitignore 感觉不干净。然后 Claude 建议使用 .git/info/exclude,揭示 git 实际上从三个位置读取忽略模式,语法完全相同。

首先,任何目录下的 .gitignore 会影响所有克隆仓库的人并被提交 — — 适用于构建输出,如 target/ 或 __pycache__/。其次,.git/info/exclude 仅影响您的克隆,永不会被提交,并且位于 .git 内部,因此防止意外提交。非常适合个人临时文件。第三,全局排除文件(默认 ~/.config/git/ignore)适用于您机器上的每个仓库 — — 适合编辑器杂乱,如 .idea/、.vscode/、.DS_Store。

使用非常简单:直接追加模式。按仓库:`echo 'plans/' >> .git/info/exclude`。对于链接的工作树,使用 `$(git rev-parse --git-common-dir)/info/exclude`。全局:创建 ~/.config/git/ignore 并添加模式,或使用 `git config --global core.excludesFile ~/.gitignore_global` 配置自定义路径。更改会在 `git status` 中立即生效,针对未跟踪的文件。

注意:Claude Code 默认会从 @-autocomplete 中排除被忽略的文件,因此一旦将 plans 添加到 .git/info/exclude,它就会从选择器中消失。

关键实体:公司:Claude, Claude Code | 位置:~/.config/git/ignore, $XDG_CONFIG_HOME/git/ignore

FAQ:.gitignore 和 .git/info/exclude 有什么区别?

.gitignore 是被提交并共享给所有克隆仓库的人,而 .git/info/exclude 仅对您的克隆有效,且永不会被意外提交。