Я погуглил и нашел много решений, но ни одно не работает для меня.
Я пытаюсь клонировать с одной машины, подключившись к удаленному серверу, который находится в сети LAN.
Выполнение этой команды с другого компьютера вызывает ошибку.
Но запустить команду SAME clone с помощью git: //192.168.8.5 ... на сервере все в порядке и успешно.
Любые идеи ?
user@USER ~
$ git clone -v git://192.168.8.5/butterfly025.git
Cloning into 'butterfly025'...
remote: Counting objects: 4846, done.
remote: Compressing objects: 100% (3256/3256), done.
fatal: read error: Invalid argument, 255.05 MiB | 1.35 MiB/s
fatal: early EOF
fatal: index-pack failed
Я добавил этот конфиг в, .gitconfig
но также не помог.
Использование git версии 1.8.5.2.msysgit.0
[core]
compression = -1
Ответы:
Сначала отключите сжатие:
Далее, давайте сделаем частичный клон, чтобы обрезать количество информации, поступающей вниз:
Когда это сработает, перейдите в новый каталог и получите оставшуюся часть клона:
или, поочередно,
Теперь сделайте обычную тягу:
Я думаю, что есть сбой с msysgit в версиях 1.8.x, который усугубляет эти симптомы, поэтому другой вариант - попробовать более раннюю версию git (<= 1.8.3, я думаю).
источник
git clone --depth 1 git@host:user/my_project.git
.git pull --all
не работает. Из-заgit clone --depth 1
будет установлен диапазон выборки только одной ветви. Поэтому мы должны сначала отредактировать .git / config.Эта ошибка может возникать для нужд памяти git. Вы можете добавить эти строки в глобальной конфигурации мерзавец файл, который находится
.gitconfig
в$USER_HOME
, для того , чтобы исправить эту проблему.источник
remote: Enumerating objects: 43, done. remote: Counting objects: 100% (43/43), done. remote: Compressing objects: 100% (24/24), done. error: inflate returned -55/26) fatal: unpack-objects failed
наконец решено
git config --global core.compression 9
Из потока вопросов BitBucket:
Из документации Git:
источник
git repack
в сочетании с этим решением, и тогда это сработало.--compression 0
не работали и не делали все.gitconfig
изменения, предложенные выше.Как сказал @ingyhere:
Мелкий клон
Сначала отключите сжатие:
Далее, давайте сделаем частичный клон, чтобы обрезать количество информации, поступающей вниз:
Когда это сработает, перейдите в новый каталог и получите оставшуюся часть клона:
или, поочередно,
Теперь сделайте тягу:
Тогда для решения проблемы вашей локальной ветки только мастер отслеживания
откройте ваш файл git config (
.git/config
) в выбранном вами редакторегде сказано:
изменить линию
в
Сделайте git fetch, и git сейчас потянет все ваши удаленные ветви
источник
В моем случае это было очень полезно:
Это ограничит оформление заказа только упомянутой ветвью, следовательно, ускорит процесс.
Надеюсь, это поможет.
источник
Я попробовал все эти команды, и ни одна из них не работает для меня, но то, что работает, это изменить git_url на http вместо ssh
если команда клона сделайте:
иначе, если вы тянете на существующий репо, сделайте это с
надеюсь, это поможет кому-то!
источник
https
а затем установите пульт наssh
.Я получил эту ошибку, когда мерзавцу не хватило памяти.
Освобождение памяти (в данном случае: выполнение задания компиляции) и повторная попытка сработали для меня.
источник
В моем случае это была проблема с подключением. Я был подключен к внутренней сети Wi-Fi, в которой у меня был ограниченный доступ к ресурсам. Это позволяло git делать выборку, но в определенный момент он рухнул. Это означает, что это может быть проблема с сетевым подключением. Проверьте, все ли работает правильно: антивирус, брандмауэр и т. Д.
Поэтому ответ elin3t важен, потому что ssh повышает производительность загрузки, чтобы избежать проблем с сетью.
источник
Настройка ниже конфигурации не работает для меня.
Как и в предыдущем комментарии, это может быть проблема с памятью из git. Таким образом, я стараюсь уменьшить рабочие потоки (с 32 до 8). Так что он не будет получать много данных с сервера одновременно. Затем я также добавляю «-f» для синхронизации других проектов.
Тогда это работает нормально сейчас.
источник
Предыдущий ответ рекомендует установить 512 м. Я бы сказал, что есть причины думать, что это неэффективно в 64-битной архитектуре. Документация core.packedGitLimit говорит:
Если вы хотите попробовать его, проверьте, установлен ли он, а затем удалите настройку:
источник
Обратите внимание, что Git 2.13.x / 2.14 (3-й квартал 2017 года) действительно повышает значение по умолчанию,
core.packedGitLimit
что влияет наgit fetch
:предельное значение упакованного git по умолчанию было увеличено на более крупных платформах ( с 8 ГиБ до 32 ГиБ ), чтобы сохранить "
git fetch
" от (восстанавливаемого) сбоя пока "gc
" работает параллельно.Смотрите коммит be4ca29 (20 апреля 2017 г.) Дэвида Тернера (
csusbdt
) .Помогает: Джефф Кинг (
peff
) .(Слиты Junio C Hamano -
gitster
- в фиксации d97141b , 16 мая 2017 года)источник
Используя ответ @cmpickle, я создал скрипт для упрощения процесса клонирования.
Он размещен здесь: https://gist.github.com/gianlucaparadise/10286e0b1c5409bd1049d67640fb7c03
Вы можете запустить его, используя следующую строку:
источник
В моем случае проблема заключалась не в параметрах конфигурации git, а в том, что в моем хранилище один файл превышал максимально допустимый размер файла в моей системе. Я смог проверить это, пытаясь загрузить большой файл и получить «Превышен лимит размера файла» в Debian.
После этого я отредактировал свой файл /etc/security/limits.conf, добавив в конце следующие строки: * hard fsize 1000000 * soft fsize 1000000
Чтобы на самом деле «применить» новые предельные значения, вам необходимо повторно войти в систему
источник
Тангенциально связан и полезен только в том случае, если у вас нет прав root и вы извлекаете Git из RPM (с rpm2cpio) или другого пакета (.deb, ..) в подпапку. Типичный вариант использования: вы пытаетесь использовать более новую версию Git по сравнению с устаревшей на корпоративном сервере.
Если git clone завершается с ошибкой
fatal: index-pack failed
без раннего упоминания EOF, а вместо этого появляется сообщение о помощиusage: git index-pack
, существует несоответствие версий, и вам нужно запустить git с--exec-path
параметром:Чтобы это произошло автоматически, укажите в своем
~/.bashrc
:источник
У меня были такие же журналы ошибок, используя git (v2.17.1) поверх ssh. В моем случае решение таково:
git gc
.Смотрите документацию git-gc: https://git-scm.com/docs/git-gc. .
Например:
Теперь я могу клонировать этот репозиторий без ошибок, например, на стороне клиента:
Команда
git gc
может помочь вызываться на стороне клиента git, чтобы избежать подобнойgit push
проблемы.Другое (взломанное) решение - скачать последний мастер без истории:
Существует вероятность того, что переполнение буфера не произойдет.
источник
В моем случае ничего не работало, когда протокол был https, затем я переключился на ssh и убедился, что я извлек репо из последнего коммита, а не из всей истории, а также из конкретной ветки. Это помогло мне:
git clone --depth 1 "ssh: .git" --branch «specific_branch»
источник
Я отключил все загрузки, которые делал в то же время, что освободило некоторое пространство, вероятно, и очистило полосу пропускания вверх / вниз
источник
Кажется, проблема git-daemon была решена в v2.17.0 (проверено с неработающим v2.16.2.1). Т.е. обходного пути выбора текста в консоли для «блокировки выходного буфера» больше не требуется.
С https://github.com/git/git/blob/v2.17.0/Documentation/RelNotes/2.17.0.txt :
источник
У меня та же проблема. Следуя первому шагу выше, я смог клонировать, но больше ничего не могу сделать. Не могу получить, вытащить или оформить старые ветки.
Каждая команда выполняется намного медленнее, чем обычно, а затем умирает после сжатия объектов.
Это также происходит, когда ваши рефери используют слишком много памяти. Обрезка памяти исправила это для меня. Просто добавьте ограничение на то, что вы выбираете так ->
Это принесет файлы, но с последними 100 правками в их истории. После этого вы можете выполнить любую команду просто отлично и с нормальной скоростью.
источник
Перепробовал большинство ответов здесь, я получил ошибку с PUTTY SSH Client со всеми возможными созвездиями.
Однажды я перешел на OpenSSH ошибка исчезла (удалите переменную среды GIT_SSH и перезапустите git bash).
Я использовал новую машину и новейшие версии git. На многих других / более старых машинах (в том числе и в AWS) она работала, как и ожидалось, с PUTTY и без какой-либо настройки git.
источник
У меня такая же проблема. REPO был слишком велик для загрузки через SSH. Как и рекомендовано @ elin3t, я клонировал по HTTP / HTTPS и изменил УДАЛЕННЫЙ URL в .git / config, чтобы использовать SSH REPO.
источник
У меня та же проблема, что и ниже, когда я бегу
git pull
Затем я проверил
git status
, было так много незафиксированных изменений, что я исправил проблему, зафиксировав и перенеся все незафиксированные изменения.источник
Ни одно из приведенных выше решений не помогло мне.
Решением, которое наконец-то сработало для меня, было переключение SSH-клиента. Переменная среды GIT_SSH была установлена на OpenSSH, предоставляемый Windows Server 2019. Версия 7.7.2.1
C:\Windows\System32\OpenSSH\ssh.exe
Я просто установил шпаклевку, 0,72
choco install putty
И изменил GIT_SSH на
C:\ProgramData\chocolatey\lib\putty.portable\tools\PLINK.EXE
источник
Я попробовал почти все предложения, сделанные здесь, но ни один из них не сработал. Для нас проблема была темпераментной и становилась все хуже и хуже, чем больше становились репозитории (на нашей сборке Jenkins для Windows).
В итоге это была версия ssh, используемая git. Git был настроен на использование некоторой версии Open SSH, указанной в файле .gitconfig пользователей с помощью переменной core.sshCommand. Удаление этой строки исправило это. Я полагаю, что это потому, что Windows теперь поставляется с более надежной / совместимой версией SSH, которая используется по умолчанию.
источник
Это сработало для меня, настроив сервер имен Googles, потому что не был указан стандартный сервер имен, а затем перезапустил сеть:
источник
Из мерзавца-клона я получил:
После перезагрузки машины я смог клонировать репо нормально.
источник
Если вы работаете в Windows, вы можете проверить, что git clone завершается с ошибкой «index-pack»? ,
В основном, после запуска вашей
git.exe daemon ...
команды, выберите текст в этом окне консоли. Повторите попытку вытягивания / клонирования, это может сработать!Смотрите этот ответ для получения дополнительной информации.
источник
Убедитесь, что на вашем диске достаточно места
источник
Ничто из этого не помогло мне, но использование встроенного инструмента Heroku помогло.
Документация здесь: https://devcenter.heroku.com/articles/git-clone-heroku-app
источник