Интересно, что здесь за «очень большое» число? Обычно это мешает не количество маленьких файлов, а большие двоичные файлы. Тем не менее, я могу себе представить, что если количество достаточно велико, вы бы хотели разделить их на несколько репозиториев - либо с помощью субмодулей, либо каким-либо другим способом. Если они должны находиться в одном репо, вы можете найти, например, Subversion более производительным.
РЕДАКТИРОВАТЬ: хорошо, так что вы добавили в качестве комментария, что вы используете монтирование NFS, которое звучит как возможное узкое место здесь. Пожалуйста, проверьте решения по этому вопросу в этой теме . Особенно интересен core.preloadindex.
С документация :
core.preloadindex
Включить предварительную загрузку параллельного индекса для таких операций, как git diff
Это может ускорить такие операции, как git diff и git status, особенно
на файловых системах, таких как NFS, которые имеют слабую семантику кэширования и, следовательно,
относительно высокие задержки ввода-вывода. Если для этого параметра установлено значение true, git сделает
параллельное сравнение индекса с данными файловой системы, что позволяет
перекрывающиеся операции ввода-вывода.
EDIT2: в комментариях упоминалось 6 миллионов файлов. Я могу понять, что это становится узким местом - это действительно очень большое количество.