Git отличный, но не подходящий инструмент для работы.Если вы не интересуетесь историей и у вас большие двоичные файлы, git просто вызовет проблемы.
Вместо этого я рекомендую небольшую базу данных SQL для метаинформации и каталог на диске для хранения файлов мультимедиа..
Сначала файлы мультимедиа on-dist: чтобы разрешить обнаружение повреждений и поддерживать переименование без повторной передачи больших файлов мультимедиа, присвойте файлам имена по их SHA (или MD5 или почти любому подходящему алгоритму контрольной суммы).Вы можете связать «реальное» имя файла или использовать таблицу перевода (возможно, из БД, возможно, нет), чтобы представить хорошее имя пользователю.
Во-вторых, база данных SQL.Отслеживайте номер ревизии (последовательности) для каждого клиента в таблице.Отслеживайте идентификатор ревизии, в которой каждый медиафайл был последний раз обновлен.,Отслеживайте текущее имя каждого медиа-файла и последний раз, когда это имя было добавлено, переименовано или удалено (имя файла NULL для удаления).
Используя это, вы можете мгновенно точно указать, на какие медиа-файлы нужно отправлятьпользователь
select clientid,mediaid from tmedia join tclients on tmedia.revisionid > tclients.revisionid;
Вы можете мгновенно указать, какие именно новые сопоставления файлов необходимо отправить:
select mediaid,filename,clientid from tmapping join tclients on tmapping.revisionid > tclients.revisionid;
Если вы когда-либо подозреваете повреждение (или периодически), вы можете проверить носитель наклиент и сервер вычисляют SHA и сравнивают его с именем файла, а затем ищут его в таблице сопоставления (и клиент, и сервер), и в таблице мультимедиа (сервер).Кроме того, просто отправьте последний файл сопоставления (или раздел файла сопоставления, или контрольную сумму файла сопоставления), чтобы проверить, что там происходит.Простой, легкий для понимания и простой в разработке.