.gitattributes 生成器
生成 .gitattributes 文件:选择换行符规范化策略,从可搜索的多选列表中勾选项目使用的语言、框架和二进制文件类型,并为锁文件和变更日志添加合并策略覆盖。所有选项会合并为一个去重后的文件,可直接粘贴使用。
输入
选择换行符的规范化方式,从下方列表中勾选项目使用的所有语言、框架和二进制文件类型,然后按需添加合并策略覆盖。所有内容都会合并为下方一个去重后的文件。
换行符规范化
text=auto 会在仓库中将换行符规范化为 LF,无论贡献者检出的是什么格式。添加 eol=lf 或 eol=crlf 可以同时强制指定检出时的换行符。
自定义规则
会追加在“Custom Rules”标题下。以 # 开头的行将作为注释保留。
输出
使用此工具的更多方式
REST API
curl -X POST https://api.iotools.cloud/v1/tool/gitattributes-generator \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"eolMode": "auto",
"groupLanguagesRuntimes": "[\"presetNode\"]"
}'替换成您账户中的密钥。工具的字段即为请求体——没有额外包装。
让 AI 代理执行
Use the IOTools `gitattributes-generator` tool (.gitattributes Generator) on this input:
YOUR_INPUT_HERE将此粘贴给任何已连接 IOTools MCP 服务器的代理,再加上您的输入内容。
嵌入式小组件
<iframe
src="https://iotools.cloud/embed/gitattributes-generator/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title=".gitattributes 生成器 — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>把它放到您自己的页面上——免费,无需密钥,只需保留一个反向链接。
| 每次 API/MCP 调用费用 | 5 积分起 |
|---|---|
| 需要更多积分? | 查看定价 |
也可通过
使用指南
通过选择换行符规范化策略、从可搜索的多选列表中勾选项目使用的语言、框架和二进制文件类型,并为锁文件和变更日志添加合并策略覆盖,即可生成一个可直接使用的 .gitattributes 文件。生成器会将所有选项合并为一个去重后的整洁文件。
什么是 .gitattributes 文件?
.gitattributes 文件告诉 Git 如何处理特定路径——文件是文本还是二进制,应规范化为哪种换行符,使用哪个 diff 驱动程序,以及冲突的更改应如何合并。它可以解决 Windows、macOS 和 Linux 贡献者之间混用 CRLF/LF 换行符导致“每个文件都显示为已更改”的经典问题,并使图片、字体、压缩包等二进制资源不再干扰文本差异比较。
如何使用此生成器
- 选择全局换行符规则——
text=auto会在提交时规范化换行符,而不改变检出结果;也可以使用eol=lf/eol=crlf强制指定检出时的换行符。 - 从多选列表中选择项目使用的所有语言和框架——输出会即时更新。
- 选择二进制文件分组(图片、字体、压缩包、文档和媒体),使 Git 永远不会将它们当作文本进行差异比较或合并。
- 如果两个分支的更改应当合并而不是冲突,可添加合并策略覆盖(例如对
CHANGELOG.md使用 union merge)。 - 将项目专属规则逐行粘贴到 Custom Rules 框中。
- 复制结果,或直接下载为
.gitattributes,并放到仓库根目录。
合并的工作方式
每个选中的预设都会写在其自己的 # 名称 标题下,规则会在全局范围内去重:如果两个预设声明了完全相同的一行,则只保留一次,并归入最先声明它的预设下。因此,组合语言、锁文件规则和二进制分组时,永远不会生成充满重复行的文件。
为什么锁文件会设置 -diff -merge?
package-lock.json、yarn.lock 和 Cargo.lock 等锁文件由工具自动生成,体积可能很大——对它们进行差异比较或文本合并既缓慢又很少有用。-diff 会将它们从 git diff / git show 中隐藏,-merge 则强制产生冲突,而不是产生错乱的自动合并,因此解决冲突后你总是需要重新生成锁文件。
.gitattributes 文件应放在哪里?
与 .gitignore 一样,将其放在 Git 仓库的顶层目录中。规则适用于该目录及其所有子目录;如需针对特定目录进行覆盖,可添加嵌套的 .gitattributes 文件。
现有文件需要重新规范化吗?
添加换行符规则只会影响 Git 重新读取的文件。添加 .gitattributes 后,运行一次 git add --renormalize .,即可将新规则应用到已跟踪的文件,然后提交结果。
这是私密的吗?
是的。所有操作都完全在你的浏览器中进行——你的选择和自定义规则绝不会上传到服务器。
如需了解同样影响换行符和缩进一致性的配套文件,请参阅 EditorConfig Generator。如需生成能让构建产物完全不进入仓库的文件,请使用 Gitignore Generator。如果你需要转换已有文件的换行符,而不是为以后的文件声明规则,可以试试 CRLF/LF Line Ending Converter。