Git тянуть очень медленно.. почему?

Примечание. Я изучил вопрос git-is-very-very-slow, но в их случае причиной были большие двоичные файлы - в то время как в моем репозитории есть PHP/JS/HTML/Только код CSS (без двоичных файлов) и самый большой файл в репозитории составляет около 800 КБ.

Я изменил один файл (несколько строк), затем git add . и git commit -m "msg", затем git push origin master.

На другой машине, когда я делаю git pull origin master, она загружает несколько MiB данных, и для вычисления дельта и применения изменений требуется более 2 минут. Здесь что-то ужасно.

Я подозреваю, что некоторые недавние операции могут привести к этому:

в последнее время я случайно добавил много активов поставщика (bower_components assets) когда я это понял, я использовал git rm, чтобы удалить их из репозитория (и, конечно, git add, git commit и git push для восходящего потока)

Это было несколько дней назад, и проблемы, которые я сейчас начал, начали делать happeing примерно в это время.

У меня есть два вопроса:

  • почему это happeing?
  • Как я могу исправить свой репозиторий?

Примечание. Я использую только одно и использую это репо.

Ответы

Ответ 1

Проблема заключалась в каталоге EmberJS app. Он содержал каталоги node_modules и bower_components, которые поддерживали сторонние библиотеки, используемые GruntJS для создания моих активов JS и CSS.

Каждый из них содержал много файлов и каталогов. Учитывая, что дерево зависимостей содержало сотни библиотек размером от небольших (несколько файлов) до большого жира (много файлов).

После удаления этих каталогов и их игнорирования репозиторий git снова работает быстрее.

Ответ 2

У меня был аналогичный опыт - git pull и push внезапно начинают работать ЧРЕЗВЫЧАЙНО медленно, занимая десять или более минут, как на локальном Mac OSX, так и на моем Linux/Apache сервере. Я удалил локальную копию репо на моем Mac и отложил его, и он начал работать нормально. Делал то же самое на сервере, и все хорошо. Полагаю, это было как-то испорчено?

Ответ 3

У меня была такая же проблема, когда я имел дело с тысячами маленьких файлов. То, что исправило это для меня, состояло в том, чтобы установить postbuffer в конфигурации git repo

git config http.postBuffer 524288000

Вместо загрузки с 18 КБ/с он внезапно вышел на полную пропускную способность

Ответ 4

Просто, если кто-то наткнулся на эту ветку, прежде чем удалять папку .git, попробуйте перезапустить Wi-Fi, что может быть только вашей проблемой с подключением Wi-Fi.