跳到主要内容

.gitattributes 生成器

API reference

生成 .gitattributes 文件:选择换行符规范化策略,从可搜索的多选列表中勾选项目使用的语言、框架和二进制文件类型,并为锁文件和变更日志添加合并策略覆盖。所有选项会合并为一个去重后的文件,可直接粘贴使用。

输入

选择换行符的规范化方式,从下方列表中勾选项目使用的所有语言、框架和二进制文件类型,然后按需添加合并策略覆盖。所有内容都会合并为下方一个去重后的文件。

换行符规范化

text=auto 会在仓库中将换行符规范化为 LF,无论贡献者检出的是什么格式。添加 eol=lf 或 eol=crlf 可以同时强制指定检出时的换行符。

自定义规则

会追加在“Custom Rules”标题下。以 # 开头的行将作为注释保留。

输出

生成的 .gitattributes
 
这对您有帮助吗?

使用此工具的更多方式

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 换行符导致“每个文件都显示为已更改”的经典问题,并使图片、字体、压缩包等二进制资源不再干扰文本差异比较。

如何使用此生成器

  1. 选择全局换行符规则——text=auto 会在提交时规范化换行符,而不改变检出结果;也可以使用 eol=lf / eol=crlf 强制指定检出时的换行符。
  2. 从多选列表中选择项目使用的所有语言和框架——输出会即时更新。
  3. 选择二进制文件分组(图片、字体、压缩包、文档和媒体),使 Git 永远不会将它们当作文本进行差异比较或合并。
  4. 如果两个分支的更改应当合并而不是冲突,可添加合并策略覆盖(例如对 CHANGELOG.md 使用 union merge)。
  5. 将项目专属规则逐行粘贴到 Custom Rules 框中。
  6. 复制结果,或直接下载为 .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。

gitattributesgitline endingscrlfeol normalizationgeneratordeveloper toolsversion controlmerge strategy

喜欢这些工具?去掉广告吧。

一次性付款即可永久移除您账户中的所有广告。无需订阅,不追踪。