Git зависает при написании объектов - PullRequest
72 голосов
/ 31 июля 2011

Я пытаюсь git push -u origin master И он просто зависает на

Writing objects:  99% (219/220), 12.65 MiB | 97 KiB/s

Часть 12.65 смещается.Когда я выхожу из процесса и запускаю его снова, он возобновляется на 99%, но никогда не завершается, как и раньше.

Он никогда не выдвигается успешно.Это начальный коммит.

Ответы [ 7 ]

174 голосов
/ 30 октября 2014

Я последовал совету VonC:

git config --global http.postBuffer 524288000

Для будущих ссылок, основываясь на комментариях:

500 MB: 524288000 (as posted in the original answer)
1 GB: 1048576000
2 GB: 2097152000 (anything higher is rejected as 'out of range')
30 голосов
/ 01 августа 2011

Это происходило из-за огромного, незарегистрированного файла в каталоге репо.Ой.

РЕДАКТИРОВАТЬ

Зависание было связано с тем, что загрузка файла заняла много времени.Файл не должен был быть включен в толчок.

7 голосов
/ 20 октября 2012

У меня была такая же проблема с (написание объектов% 16), застрявшая тогда со смертельным исходом. Я решил эту проблему, сохранив текущие изменения и клонировав новый репозиторий, а затем скопировал в него измененные файлы.

Например. Предположим, что текущим хранилищем является A, тогда все, что вам нужно сделать, это:

  1. mv A B
  2. git clone A
  3. mv B/* A/
  4. rm -rf B

Затем зафиксируйте и нажмите, и все заработало. Он распознал перемещенные файлы как измененные:)

3 голосов
/ 20 июня 2018

В моем случае я использовал папку git с плохими правами, которая хранится на том же диске, что и репозиторий, но это может быть то же самое с ssh, даже если вы используете авторизованного пользователя для входа в систему.

Проверьте тогдаесли у вас есть правильные права на запись в удаленном репо.

Пример:

Инициирование локального и удаленного репо

git init /tmp/src
git init --bare /tmp/dst
cd /tmp/src

Добавлениеудаленное репо в исходное положение

src > git remote add dest /tmp/dst

Имитация проблемы

src > chmod -R 555 /tmp/dst

Добавление поддельного файла и его нажатие

src > touch a && git add a && git commit -m 'demo'
src > git push --set-upstream dest master
src > git push
Counting objects: 3, done.
Writing objects: 99% (2/3), 202 bytes | 0 bytes/s.

Git зависает

Решение

src > chmod -R 775 /tmp/dst
2 голосов
/ 19 декабря 2017

В моем случае у меня была медленная скорость загрузки через Интернет, и файл, который я хотел загрузить, был большим, хитрость в том, чтобы использовать git LFS (хранилище больших файлов), который намного более терпелив для загрузки больших файлов, вы можете найти учебник git LFS здесь

1 голос
/ 23 августа 2016

git clean -f -n решает мою проблему.Много неотслеживаемых файлов не обнаружено.Но будьте осторожны, потому что это приведет к удалению файлов в вашем каталоге

0 голосов
/ 05 апреля 2019

В моем случае я пытался толкать без выполнения правил моей компании.Позже я узнал, что мы должны начинать наши коммит-сообщения с «MOBIL-XXXX», где XXXX - это номер, который нам назначен в Jira (еще один инструмент, который мы используем для отслеживания ситуации разработки).

Убедитесь, что у вашей компании есть подобное правило ограничения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...