#git #version-control #binaryfiles #directory-structure
#git #управление версиями #двоичные файлы #структура каталогов
Вопрос:
Я пытаюсь установить каталог как двоичный (каталог, а не вложенные файлы каталога).
Я пробую это в .gitignore :
DIRNAME binary
Цель состоит в том, чтобы указать git, что каталог должен обрабатываться как «двоичный файл»
Чтобы четко объяснить :
- Мой каталог содержит набор файлов и подкаталогов, которые могут быть прочитаны (все файлы и подкаталоги за один раз) определенной программой, это как файл Excel (file.xlsx ), Excel содержит несколько файлов и подкаталогов, сжатых с расширением xlsx, читаемых только Microsoft Excel.
- Параллельно
- для моего случая: папка = двоичный файл (все вложенные папки и файлы должны быть доступны для чтения)
- для случая Excel: file.xlsx = двоичный файл
Можно ли указать Git, что мой каталог похож на двоичный файл?
Цель, параллельно (при слиянии git) :
- для моего случая: обработайте каталог как двоичный для выполнения diff с помощью определенного инструмента (для которого нужен каталог и все его содержимое)
- для случая Excel: обработайте файл как двоичный для выполнения diff с помощью Excel
Я не знаю, смог ли я четко объяснить свою проблему, но описать ее непросто…
Комментарии:
1.
DIRNAME binary
не выглядит как допустимый глобус? — Также вы ищете git lfs?2. Спасибо за ваш ответ, я никогда не использую lfs, и я не вижу, как я могу использовать его в моем случае, потому что каталог DIRNAME должен управляться как файл, как я объясняю. Если я изменяю один из вложенных файлов во второй ветке, когда я объединяю его в свою первую ветку, мне нужно открыть каталог (из каждой ветки) с помощью моего специального инструмента diff и merge. И если папка не представлена в виде одного файла, git merge открывает все файлы, в которых реализована модификация, но я должен использовать каталог, а не каждый файл по одному, чтобы быть открытым с помощью моего конкретного инструмента diff и merge
3. @torek есть идеи? Я немного потерялся
Ответ №1:
Это невозможно. .gitattributes
в частности, не соответствует каталогам, только файлам, поэтому буквально нет способа обрабатывать каталоги с его помощью.
Если вы хотите объединить отдельные файлы в каталоге определенным образом, вы можете установить шаблон, например dirname/**
, для рекурсивного сопоставления всех файлов в каталоге, а затем применить пользовательский драйвер слияния для каждого отдельного файла. Однако вы не можете объединить этот файл на основе содержимого других файлов, также находящихся в этом каталоге.
В общем, двоичные файлы обычно не подходят для репозитория, хотя есть исключения. Возможно, вам повезет больше, превратив ее в единый текстовый файл, который затем можно объединить, если это поддерживается. В противном случае вы можете задать новый вопрос о том, как наилучшим образом обрабатывать хранение вашего конкретного типа данных для использования в проекте.