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.