Вопрос:
Я хотел бы добавить файл атрибутов в мой репозиторий Git, как описано здесь. Он указывает, что я должен включать .gitattributes в корневую папку моего репозитория.
-
Является ли .gitattributes просто файлом или папкой? Как создать этот файл/папку?
Windows вызывает следующие ошибки:
“Невозможно создать файл без имени файла”
Msgstr “Вы должны ввести имя файла”
-
Где можно добавить файл? В корне репозитория X:PATHTORepository или папке Git, X:PATHTORepository.git?
-
Будут ли применяться атрибуты для других участников, клонирующих/форсирующих мой репозиторий?
например, если бы я нажал на GitHub или GitLab, а какая-то другая сторона сняла копию, добавили бы атрибуты, которые я добавил, на их машину?
Связанные: Git Ignore
Примечание. Я использую TortoiseGit и msysgit на платформе Windows, если это помогает.
Лучший ответ:Содержание
- Является ли .gitattributes файлом или папкой? Как мне это создать?
- Куда добавить файл? В корневом каталоге хранилища X:PATHTORepository или в папке Git X:PATHTORepository.git?
- Будут ли применены атрибуты для других участников, клонирующих/разветвляющих мой репозиторий?
Является ли .gitattributes файлом или папкой? Как мне это создать?
-
Windows: создайте новый текстовый файл (щелкните правой кнопкой мыши> новый> текстовый файл) в проводнике Windows и переименуйте его (ярлык: F2) следующим образом
.gitattributes.
Примечание: то есть DOT + gitattributes + DOT, Windows удалит завершающую DOT для вас, создав соответствующее имя файла.
-
Linux: и его варианты (Gentoo, Raspberry Pi, Mac OS и т.д.)
touch .gitattributes
-
Или: .gitattributes репозиторий Git Attributes и переместите/скопируйте файл .gitattributes который применим к вашему репозиторию (Сноска 1 и 2).
Куда добавить файл? В корневом каталоге хранилища X:PATHTORepository или в папке Git X:PATHTORepository.git?
Есть два места, где можно добавить файл атрибутов Git
Repository (1) Repository.gitinfoattributes (3)
- Добавление файла .gitattributes здесь устанавливает атрибуты “Универсально”.
- Создание файла .gitattributes здесь устанавливает атрибуты “Лично”, то есть хранилище на одной собственной машине. Хотя это нежелательно, у вас может быть на то веская причина.
Будут ли применены атрибуты для других участников, клонирующих/разветвляющих мой репозиторий?
Если файл зафиксирован в хранилище, он будет клонирован, когда хранилище будет клонировано, и атрибуты, навязанные на компьютерах участников тех или иных проектов, будут соответствующим образом спроектированы (сноска 3 и 4). Атрибуты применяются “глобально”, когда .gitattributes добавляется в корень проекта, X:PATHTORepository.gitignore и “Локально”, когда добавляется в некоторую подпапку, X:PATHTORepositorySOMESUB-FOLDER.gitignore.
Сноска (и):
- Необходимо соблюдать осторожность, если вы используете хранилище больших файлов (Git LFS), поскольку эти файлы могут не знать LFS или наоборот. Кроме того, LFS создаст .gitattributes для вас при настройке отслеживания.
- По совпадению есть также хранилище для Git Ignore.
- Первоначально, когда я впервые задал вопрос, я был обеспокоен правильной обработкой концов строк; .gitattributes хорошо справляется с этим, но для каждого участника лучше настроить git на своих машинах.
- Не будьте идиотом, который добавляет .gitattributes в файл .gitignore. Да, это будет применять атрибуты “Лично”, но кто-то перезапишет ваш обходной путь “Глобально” однажды, и будут слезы и объятия… много объятий !!!