Перейти к основному содержанию

Генератор .gitattributes

API reference

Создайте файл .gitattributes: выберите стратегию нормализации окончаний строк, отметите языки, фреймворки и типы бинарных файлов в списках с поиском и множественным выбором, а также добавьте переопределения стратегии слияния для lock-файлов и журналов изменений. Все выборы объединяются в один готовый к вставке файл без повторов.

Ввод

Выберите способ нормализации окончаний строк, отметьте все языки, фреймворки и типы бинарных файлов, которые использует ваш проект, из списков ниже, и при необходимости добавьте переопределения стратегии слияния. Всё объединяется в один файл без повторов ниже.

Нормализация окончаний строк

text=auto приводит окончания строк к LF в репозитории независимо от того, что получает каждый участник при checkout. Добавьте eol=lf/eol=crlf, чтобы дополнительно задать окончание строк при checkout.

Пользовательские правила

Добавляются под заголовком “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\"]"
  }'

Подставьте свой собственный ключ из аккаунта. Поля инструмента — это тело запроса, без обёртки.

Спросите у ИИ-агента

Use the IOTools `gitattributes-generator` tool (.gitattributes Generator) on this input:

YOUR_INPUT_HERE

Вставьте это любому агенту, подключённому к MCP-серверу IOTools, и добавьте свой ввод.

Виджет для встраивания

<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: выберите стратегию нормализации окончаний строк, отметьте языки, фреймворки и типы бинарных файлов вашего проекта в списках с поиском и множественным выбором, а также добавьте переопределения стратегии слияния для lock-файлов и журналов изменений. Генератор объединяет все ваши выборы в один аккуратный файл без повторов.

Что такое файл .gitattributes?

Файл .gitattributes сообщает Git, как обрабатывать определённые пути: является ли файл текстовым или бинарным, к какому окончанию строк его нормализовать, какой драйвер diff использовать и как сливать конфликтующие изменения. Он решает классическую проблему «все файлы показаны как изменённые», которая возникает из-за смеси окончаний строк CRLF/LF у участников под Windows, macOS и Linux, а также не даёт бинарным ресурсам (изображениям, шрифтам, архивам) засорять текстовые diff.

Как пользоваться генератором

  1. Выберите глобальное правило для окончаний строк: text=auto нормализует окончания строк при коммите и не меняет checkout, либо задайте конкретное окончание при checkout через eol=lf/eol=crlf.
  2. Отметьте в списке с множественным выбором все языки и фреймворки, которые использует ваш проект, — результат обновляется мгновенно.
  3. Выберите группы бинарных файлов (изображения, шрифты, архивы, документы и медиа), чтобы Git никогда не пытался сравнивать или сливать их как текст.
  4. Добавьте переопределения стратегии слияния (например, union merge для CHANGELOG.md), если изменения из двух веток должны объединяться, а не конфликтовать.
  5. Вставьте специфичные для проекта правила в поле Custom Rules, по одному на строку.
  6. Скопируйте результат или сразу скачайте его как .gitattributes в корень вашего репозитория.

Как работает слияние

Каждый выбранный пресет записывается под собственным заголовком # Название, а правила дедуплицируются глобально: если два пресета объявляют одну и ту же строку, она сохраняется только один раз — под первым пресетом, который её объявил. Поэтому сочетание языка, правила для lock-файла и группы бинарных файлов никогда не порождает файл, заполненный повторяющимися строками.

Почему lock-файлам назначают -diff -merge?

Lock-файлы, такие как package-lock.json, yarn.lock и Cargo.lock, генерируются автоматически и могут быть очень большими: сравнивать их или пытаться выполнить текстовое слияние медленно и редко полезно. -diff скрывает их из git diff/git show, а -merge принудительно создаёт конфликт вместо некорректного автослияния, поэтому после разрешения конфликта lock-файл всегда нужно генерировать заново.

Куда помещать файл .gitattributes?

Положите его в корневой каталог вашего Git-репозитория, как и .gitignore. Правила действуют на эту папку и все вложенные папки; для переопределений в конкретных каталогах добавляйте вложенные файлы .gitattributes.

Нужно ли заново нормализовать уже существующие файлы?

Добавление правила для окончаний строк влияет только на файлы, которые Git перечитывает. Выполните git add --renormalize . один раз после добавления .gitattributes, чтобы применить новые правила к уже отслеживаемым файлам, и затем зафиксируйте результат коммитом.

Это приватно?

Да. Всё работает полностью в вашем браузере — ваши выборы и пользовательские правила никогда не загружаются на сервер.

Для парного файла, который также важен для согласованных окончаний строк и отступов, см. EditorConfig Generator. Чтобы создать файл, который полностью исключает сгенерированные артефакты из репозитория, используйте Gitignore Generator. Нужно преобразовать окончания строк в уже имеющихся файлах, а не задавать правило для будущих? Попробуйте CRLF/LF Line Ending Converter.

gitattributesgitline endingscrlfeol normalizationgeneratordeveloper toolsversion controlmerge strategy

Нравятся инструменты? Уберите рекламу.

Один платёж навсегда убирает всю рекламу с вашего аккаунта. Без подписки, без слежки.