.gitattributes

Тема дорожной карты · Изучи Git

Файл .gitattributes в Git используется для задания атрибутов для путей и изменения поведения Git с конкретными файлами. Это особенно полезно для управления различными типами файлов, таких как текстовые файлы, бинарные файлы и архивы. Например, вы можете указать, что определённые файлы являются текстовыми и должны использовать перевод строки LF или что определённые файлы являются бинарными и не должны быть изменены. Это помогает улучшить процесс работы с репозиторием и обеспечивает более точное управление версиями.

.gitattributes играет ключевую роль в настройке поведения Git для различных файлов и папок. Этот файл позволяет указать, что определённые файлы являются текстовыми, бинарными или архивными, что влияет на их обработку и отображение. Файл .gitattributes также используется для настройки поведения Git в отношении слияния и разрешения конфликтов, а также для определения файлов, которые следует игнорировать при архивировании или экспорте.

Как это работает

Файл .gitattributes содержит правила, которые определяют, как Git должен обрабатывать определённые файлы и папки. Например, вы можете указать, что определённые файлы являются текстовыми и должны использовать перевод строки LF или CRLF. Вы также можете указать, что определённые файлы являются бинарными и не должны быть изменены. Это помогает улучшить процесс работы с репозиторием и обеспечивает более точное управление версиями.

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

Когда применять

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

git log -S "string" (pickaxe — найти коммиты, добавившие/удалившие строку), git log -G "regex" (regex-pickaxe), git log --follow <file> (отслеживание переименований), git diff --word-diff (word-level diff), git range-diff (сравнить два диапазона коммитов — идеально для "сломал ли rebase?"), git rerere (переиспользует записанные разрешения для повторяющихся конфликтов).

Типичные ошибки

Ошибки, связанные с .gitattributes, могут возникнуть, если вы не правильно настроите атрибуты для файлов и папок. Например, вы можете указать, что определённые файлы являются текстовыми, но не указать, что они должны использовать перевод строки LF или CRLF. Это может привести к проблемам с отображением этих файлов в Git. Вы также можете указать, что определённые файлы являются бинарными, но не указать, что они не должны быть изменены. Это может привести к проблемам с обработкой этих файлов в Git.

Ловушки .gitattributes: опираются на алиасы git log без понимания (меняете опцию — алиас ломается); rerere включён, но конфликты эволюционируют (применяете stale-разрешения); pickaxe на огромном репо (медленно — --all осторожно).

Связанные понятия

Полезные ресурсы