Сохраняются ли бинарные файлы (большие и точные) в репозитории Git для производительности помимо операций клонирования?

Я прочитал существующие вопросы о хранении двоичных файлов в репозитории Git, но некоторые аспекты все еще не ясны.

Репозиторий содержит около 50 МБ источников кода и около 1 ГБ двоичных файлов. Бинарные файлы редко меняются.

  • Является ли производительность обычного ежедневного рабочего процесса отрицательно воздействующим на двоичные файлы? Операции, такие как передача изменений, перемещение, перемещение и изменение файлов; слияния; тянуть и толкать. Эти операции не связаны с указанными двоичными файлами.
  • С точки зрения производительности (например, ОЗУ, CPU, доступ к жесткому диску) есть ли какая-либо заслуга в удалении этих файлов из выбранных ветвей? В отличие от полного удаления файлов из репозитория и его истории.

Ответ 1

Если файлы имеют никогда, это не влияет на производительность.
Каждая фиксация отмечает измененные файлы, поэтому, когда фиксация применяется к файлам, которые не помечены в них, они не имеют большого значения, являются ли они 1Kb или 1 Gb. Если файл появляется в фиксации, это будет иметь значение, поскольку обычно бинарные файлы работают медленнее.
Теперь основная проблема заключается в том, что клонирование репозитория - это не единственное действие, которое связано с применением коммитов. Например, когда вы переходите на другую ветвь git, необходимо удалить приложение всех коммитов до общей, а затем применить все фиксации другой ветки до достижения желаемого фиксации чека или при слиянии или перезагрузке git проанализировать все фиксации, чтобы найти различия.
В принципе, всякий раз, когда коммит, содержащий изменения в двоичном файле, должен быть прочитан git, производительность, скорее всего, будет затронута, и из-за способа работы git, коммиты будут "использоваться" довольно часто.
Что касается вашего вопроса, это в основном зависит от того, что вы подразумеваете под "редко меняющимся". До тех пор, пока ветки, на которых вы обычно работаете, не имеют модификаций в двоичных файлах, это не должно быть проблемой, но если у вас есть изменения в отслеживании при проверке разных коммитов, производительность будет затронута.

Ответ 2

Он может влиять на операции, такие как git gc или git repack, где делается деликация. См. "Являются ли Git дельтами файлов файлов, а не моментальными снимками?.

Вот почему я обычно храню в управлении версиями только текстовый файл, объявляющий, где искать нужные мне двоичные файлы, в отличие от хранения самих двоичных файлов. См. "git включить скомпилированную dll из другого репозитория".