Now vibe coding, so learning hammer FE ?
《Git 的魔法文件》

标签:#Git #版本控制 #GitIgnore #GitAttributes #GitLFS #GitModules #Mailmap #GitBlame #EditorConfig #开发工具

总结:Git 仓库中的"魔法文件"是随代码提交的特殊配置文件,用于控制 Git 行为。文章系统介绍了 .gitignore`、.gitattributes`、`.lfsconfig`、`.gitmodules`、`.mailmap`、`.git-blame-ignore-revs` 等核心文件的功能与语法,涵盖文件忽略、属性管理、大文件存储、子模块、作者映射、blame 忽略等场景,同时提及代码托管平台专用文件夹及其他生态工具(如 .editorconfig`、.dockerignore`)的配置模式,为工具开发者和使用者提供完整参考指南。

文章要点:
- .gitignore 定义忽略规则,支持通配符、目录标记和否定模式,仅影响未跟踪文件;Git 按层级检查多个位置的 ignore 文件
- .gitattributes 控制文件处理逻辑,包括行尾规范化(`text eol=lf`)、diff/合并驱动、二进制标记,以及 GitHub Linguist 的语言检测覆盖(`linguist-vendored`、`linguist-generated`)
- .lfsconfig 存储 Git LFS 服务端配置,使用 git config 格式设置 URL 和传输选项,确保团队成员共享相同设置
- .gitmodules 管理子模块依赖,包含路径、URL 和分支信息;子模块不会随 git clone 自动获取,需使用 --recurse-submodules 或手动初始化
- .mailmap 映射作者身份,将旧邮箱或姓名变体统一为标准身份,影响 git log`、`git shortloggit blame 的输出(但不影响 GitHub 贡献者图表)
- .git-blame-ignore-revs 记录格式化、迁移等无意义提交的 SHA,使 git blame 跳过这些提交,直接显示实际逻辑作者;GitHub、GitLab 15.4+、Gitea 自动支持
- 代码托管平台使用专属文件夹(`.github/.gitlab/.gitea/` 等)存储 CI/CD 工作流、Issue 模板和 CODEOWNERS 配置;Forgejo 和 Gitea 支持配置回退链
- 其他生态工具延续相同模式:`.editorconfig` 统一编辑器行为、`.dockerignore` 控制构建上下文、`.ruby-version`/.node-version 指定语言运行时版本

文章URL:https://nesbitt.io/2026/02/05/git-magic-files.html Git’s Magic Files
 
 
Back to Top