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.