git push зависає після рядка Total


77

Мій git push висить після появи, щоб завершити push. Я збираюся git push

Counting objects: 51, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (47/47), done.
Writing objects: 100% (47/47), 27.64 MiB | 6.47 MiB/s, done.
Total 47 (delta 4), reused 0 (delta 0)

Він зависає тут, і мені потрібно control-c, щоб повернутися до командного рядка. Раніше я вже робив декілька зобов’язань із цим проектом, що стосується теперішніх питань. Я спробував інші репозиторії на своїй машині, і вони працюють нормально. Що тут відбувається?


5
Щось на зразок - "strace -efile -f git push" може показати більше про те, де знаходиться зависання.
— Ерік Джонсон,

Чи щось змінилося на віддаленому репо? На зразок встановлення тривалого гачка після прийому?
— Гевін,

Ні. Я використовую bitbucket, тому не маю доступу до всього. Я починаю думати, що це просто великий трансфер, який займає багато часу. Чи є якийсь індикатор прогресу при натисканні?
— Патрік

Щось пішло не так з дозволами на репозиторій, до якого ви натискаєте, або це місце втратило місце на диску. Я бачив обидві проблеми. Також git gc може допомогти.
— qwerty9967

2
У мене була точно така ж проблема: у моєму випадку користувач git на сервері не володів відкритим репо - корінь належав йому (забув -R в чауні)
— Фабіо

Відповіді:


108

Це виявилось зовсім не проблемою. Мені просто довелося почекати, поки завантаження завершиться. Я додав кілька великих файлів, і індикатора прогресу немає. Можливо, комусь ще це буде корисно.


12
ну в моєму випадку файл розміром 2 кб не великий .... підключення до Інтернету неймовірно, все ще висить
— Рамі Дабейн,

2
Це було корисно. Добре, що я не перебив його: P
— Глого

1
У мене схожа проблема, але індикатор мережі в диспетчері завдань Windows 8 говорить 0% активності ...
— Пітер,

1
@Pieter - Я отримую точно те саме - жодної видимої активності в мережі (хоча це був великий поштовх), але потім все закінчилося ОК
— Енді

Це досить погано розроблений інтерфейс, після "закінчення" продовжуйте робити справи без відгуків користувачів.
— Hernán Eche

12

Це може бути (як передбачає прийнята відповідь) лише хвилиною очікування, але в більшості випадків це пов’язано з дозволами на пульті дистанційного керування. Хоча в основному це не проблема щодо загальнодоступних служб git, таких як GitHub, Gitlab або Bitbucket, самовіддані пульти можуть мати спеціального користувача або групу для доступу.

І на нових голих сховищах недостатньо змінити папку, а натомість вона повинна бути рекурсивною через .git-Folder усередині.


Це правда в моєму випадку. Перевірка дозволів вирішила проблему.
— averysphere

Так, це було абсолютно проблемою на нашому локальному груповому спільному репозиторії git. Дивно, що git не давав жодних помилок та попереджень.
— Огре Псалом 33,

... зробив це тисячу разів раніше ... все-таки потрібно було прочитати вашу відповідь, щоб ще раз перевірити хімічну завивку ВНУТРІ РЕЖИМУ, дякую!
— Moritz

3

Причини цього також можуть бути дозволи у випадку оголеного репо на віддаленій машині.


2

Це спрацювало у мене лише у тому випадку, коли я це робив git push -u origin master, коли я просто використовував git pushдля bit bit, це не проштовхувало.


1

Чекати, поки завантаження закінчиться, для мене не працює. Я натиснув не дуже великий файл, але чекав досить довго, все ще повішений.

Мені допомогло оновлення від msysgit 1.9.5до git-for-windows 2.6.2.


1

Просто хотів додати це на випадок, якщо це комусь допоможе. У мене була та сама проблема, і проблема полягала в тому, що користувач git не мав дозволу писати у файли, а лише читати з них.


1

Проблема в тому, що файл завантаження великий.

Або почекайте, або перейдіть до папки проекту та видаліть усі бібліотеки, які ви можете знайти у цільовій папці, якщо використовуєте maven. Тоді зробіть поштовх, і це відбудеться швидко.

У будь-якому випадку, папки бібліотеки не потрібно зберігати в git, це просто марно витрачений простір git, якщо і поки вони не будуть доступні у сховищах maven, і вам дійсно потрібно їх зберігати


0

Подивіться, чи ви інсценували, але не фіксували змін. (git status )

Якщо так, то зафіксуйте (або скасуйте) ці, а потім спробуйте натиснути. Працював у мене.


0

У моєму випадку це було викликано проблемою з msysgit 1.9.5. Пониження версії для msysgit 1.9.4вирішення проблеми.


0

У моєму випадку пульт мав повний диск. Видалення деяких файлів на пульті оперативно вирішило проблему.


0

Перевірте права користувача, якими користується git!

У моєму випадку я спробував через ssh, і використовуваний користувач системи не зміг записати в репозиторій git bare ...

Ось як ви можете налагодити ваше з'єднання ssh


0

Ця проблема може бути викликана проблемами з вашим агентом SSH.

Нещодавно я зіткнувся з цією проблемою, оскільки змінив оболонку за замовчуванням zshна bash. Я спочатку налаштував свої ключі ssh за допомогою zsh, і тому вони за замовчуванням були недоступні для bash, using chsh -s /bin/bash.

Щоб виправити, вам потрібно додати ключ () SSH до агента аутентифікації SSH , використовуючи один і той же скрипт ( bash, sh, zshі т.д.) ви використовуєте для виконання ваших команд GIT:

eval `ssh-agent`
ssh-add ~/.ssh/some_key_rsa

Вам потрібно буде ввести парольну фразу для ключа, щоб додати його. Щоб зберегти парольну фразу у своєму користувацькому ланцюжку ключів, щоб вам не потрібно було її вводити кожного разу, коли використовується ключ, додайте ключ із -Kопцією до ssh-addкоманди.

ssh-add -K ~/.ssh/some_key_rsa

Зверніть увагу, що верхній регістр, Kоскільки використання малого - це інший варіант команди.


0

Я зіткнувся з цією ж проблемою, натискаючи на GitHub. Я виявив, що підмножина передаваних файлів не приймається.

Я виявив це, розбивши свій великий коміт на менші коміти (як описано в цьому запитанні SO: Розбити попередній коміт на кілька комітів ), а потім знайшов успіх з більшістю менших фігур.

Проблемна частина містить файли зображень, і я все ще сортую, який саме файл (або файли) викликає проблему.


0

Я хотів надіслати коментар @ Fabio до початкової публікації - це вирішило це для мене.

Я запускаю власний спеціальний локальний git-сервер на Raspberry Pi. Я забувchown про нове оголене репо, і натискання першого коміту з віддаленого ПК просто зависало на невизначений час.

Це виправлено (працює chownяк root або з sudo):

cd /srv/git
chown git:git -R <repo_name>.git

Заміна <repo_name>на ім’я вашого репо.


0

Додавання чергового локального коміту та повторна спроба натискання спрацювало для мене.


0

У мене була та сама проблема, і виявляється, у мене була старіша версія (яку я видалив, але мала таку ж назву) репо, підключеного до Heroku. Коли я відключив його, він закінчив натиск.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.