Git Push hängt nach Total Line


76

Mein Git-Push hängt nach dem Erscheinen, um den Push abzuschließen. Ich werde git push gehen

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)

Es hängt hier und ich muss-c steuern, um zur Befehlszeile zurückzukehren. Ich habe in der Vergangenheit mehrere Commits mit diesem Projekt mit jetzt Problemen gemacht. Ich habe andere Repos auf meinem Computer ausprobiert und sie funktionieren einwandfrei. Was geht hier vor sich?


5
Etwas wie "strace -efile -f git push" kann mehr darüber verraten, wo sich das Auflegen befindet.
Eric Johnson

Hat sich am Remote-Repo etwas geändert? Zum Beispiel einen lang laufenden Post-Receive-Hook installiert haben?
Gavin

Ich benutze Bitbucket, also habe ich nicht Zugriff auf alles. Ich fange an zu denken, dass es nur eine große Übertragung ist, die lange dauert. Gibt es irgendeine Art von Fortschrittsanzeige beim Drücken?
Patrick

Ist bei den Berechtigungen für das Repo, auf das Sie zugreifen, ein Fehler aufgetreten, oder ist an diesem Speicherort nicht genügend Speicherplatz vorhanden? Ich habe beide Probleme gesehen. Auch ein Git GC kann helfen.
QWERTY9967

2
Hatte genau das gleiche Problem: In meinem Fall besaß der Git-Benutzer auf dem Server nicht das bloße Repo - Root besaß es (hatte das -R im Chown vergessen)
Fabio

Antworten:


107

Dies stellte sich als überhaupt kein Problem heraus. Ich musste einfach warten, bis der Upload abgeschlossen war. Ich habe mehrere große Dateien hinzugefügt und es gibt keine Fortschrittsanzeige. Vielleicht findet das jemand anderes hilfreich.


11
Nun, 2kb Datei ist nicht groß in meinem Fall .... Internetverbindung ist fantastisch hängt noch arghhhh
Rami Dabain

2
Das war hilfreich. Gut, dass ich es nicht unterbrochen habe: P
Glogo

1
Ich habe ein ähnliches Problem, aber die Netzwerkanzeige im Task-Manager von Windows 8 zeigt 0% Aktivität an ...
Pieter

1
@Pieter - Ich bekomme genau das gleiche - keine offensichtliche Netzwerkaktivität (obwohl es ein ziemlich großer Schub war), aber dann endete es OK
Andy

Es ist eine ziemlich schlecht gestaltete Oberfläche, nach dem "Fertigstellen" machen Sie weiter ohne Benutzerfeedback.
Hernán Eche

11

Das Warten kann (wie aus der akzeptierten Antwort hervorgeht) nur einen Moment dauern, ist jedoch in den meisten Fällen mit Berechtigungen auf der Fernbedienung verbunden. Während es sich bei öffentlichen Git-Diensten wie GitHub, Gitlab oder Bitbucket meistens nicht um ein Problem handelt, haben selbst gehostete Remote- Server möglicherweise einen speziellen Benutzer oder eine Gruppe für den Zugriff.

Und bei neuen nackten Repositorys reicht es nicht aus, den Ordner zu ändern, sondern muss aufgrund von .git-Folder im Inneren rekursiv sein .


Dies ist in meinem Fall wahr. Durch Überprüfen der Berechtigungen wurde das Problem behoben.
Averysphere

Ja, das war genau das Problem in unserem lokalen Git-Repo, das von Gruppen geteilt wurde. Seltsam, dass Git keine Fehler oder Warnungen gegeben hat.
Oger Psalm33

... habe das schon tausend Mal gemacht ... musste noch deine Antwort lesen, um die Dauerwellen INNERHALB des Verzeichnisses zu überprüfen, danke!
Moritz

3

Berechtigungen können dies auch bei einem Bare-Repo auf einem Remote-Computer sein.


2

Es funktionierte nur für mich in dem Fall, als ich es tat git push -u origin master, als ich es nur git pushfür einen Bit-Eimer benutzte , es drückte sich nicht durch.


1

Warten, bis der Upload abgeschlossen ist, funktioniert bei mir nicht. Ich schob nicht sehr große Datei, wartete aber lange genug, immer noch gehängt.

Was mir geholfen hat, ist das Update von msysgit 1.9.5auf git-for-windows 2.6.2.


1

Ich wollte dies nur hinzufügen, falls es jemandem hilft. Ich hatte das gleiche Problem und das Problem war, dass der Git-Benutzer keine Berechtigung hatte, in die Dateien zu schreiben, sondern nur aus ihnen zu lesen.


1

Das Problem ist, dass die Upload-Datei groß ist.

Entweder warten Sie ab oder Sie gehen in Ihren Projektordner und löschen alle Bibliotheken, die Sie im Zielordner finden könnten, wenn Sie maven verwenden. Dann machen Sie den Push und es wird schnell gehen.

Wie auch immer, die Bibliotheksordner müssen nicht in Git gespeichert werden, es ist nur eine Verschwendung von Git-Speicherplatz, es sei denn und bis sie nicht in den Maven-Repositorys verfügbar sind und Sie sie wirklich speichern müssen


0

Überprüfen Sie, ob Sie Änderungen bereitgestellt, aber nicht festgeschrieben haben. ( git status)

Wenn ja, legen Sie diese fest (oder entfernen Sie sie) und versuchen Sie dann zu pushen. Hat für mich gearbeitet.


0

In meinem Fall wurde es durch ein Problem mit verursacht msysgit 1.9.5. Downgrade, um msysgit 1.9.4das Problem zu lösen.


0

In meinem Fall hatte die Fernbedienung eine volle Festplatte. Durch das sofortige Entfernen einiger Dateien auf der Fernbedienung wurde das Problem behoben.


0

Überprüfen Sie die Benutzerrechte, die git verwendet!

In meinem Fall habe ich es mit ssh versucht und der verwendete Systembenutzer konnte nicht in das git bare Repository schreiben ...

Hier erfahren Sie, wie Sie Ihre SSH-Verbindung debuggen können


0

Dieses Problem kann durch Probleme mit Ihrem SSH-Agenten verursacht werden.

Ich bin kürzlich auf dieses Problem gestoßen, weil ich meine Standard-Shell von zshauf geändert habe bash. Ich würde ursprünglich meine SSH - Schlüssel mit aufgebaut zsh, und so waren sie nicht standardmäßig zur Verfügung bash, mit chsh -s /bin/bash.

Um dies zu beheben, müssen Sie Ihren SSH - Schlüssel (n) an den SSH - Authentifizierungsagenten mit dem gleichen Shell - Skript hinzufügen ( bash, sh, zsh, usw.) Sie verwenden Ihre git Befehle auszuführen:

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

Sie müssen die Passphrase für den Schlüssel eingeben, um ihn hinzuzufügen. Fügen Sie den Schlüssel mit der -KOption zum ssh-addBefehl hinzu, um die Passphrase in Ihrem Benutzerschlüsselbund zu speichern, damit Sie sie nicht jedes Mal eingeben müssen, wenn der Schlüssel verwendet wird .

ssh-add -K ~/.ssh/some_key_rsa

Beachten Sie, dass die KVerwendung von Kleinbuchstaben eine andere Befehlsoption ist.


0

Ich bin auf dasselbe Problem gestoßen, als ich auf GitHub geschoben habe. Ich habe festgestellt, dass eine Teilmenge der übertragenen Dateien nicht akzeptiert wurde.

Ich habe dies herausgefunden, indem ich mein großes Commit in kleinere Commits aufgeteilt habe (wie in dieser SO-Frage beschrieben: Ein vorheriges Commit in mehrere Commits aufteilen ) und dann mit den meisten kleineren Teilen Erfolg hatte.

Das Problemstück enthält Bilddateien und ich sortiere immer noch aus, welche bestimmte Datei (oder Dateien) das Problem auslöst.


0

Ich wollte @ Fabios Kommentar zum ursprünglichen Beitrag unterstützen - das hat es für mich gelöst.

Ich verwende meinen eigenen lokalen Ad-hoc-Git-Server auf Raspberry Pi. Ich habe chowndas neue Bare-Repo vergessen , und das erste Commit von einem Remote-PC aus zu übertragen, würde auf unbestimmte Zeit hängen bleiben.

Dies hat es behoben (läuft chownals root oder mit sudo):

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

Ersetzen <repo_name>durch den Namen Ihres Repos.


0

Das Hinzufügen eines weiteren lokalen Commits und das erneute Versuchen von Push haben bei mir funktioniert.


0

Ich hatte das gleiche Problem und es stellte sich heraus, dass ich eine ältere Version (die ich gelöscht habe, aber den gleichen Namen hatte) des mit Heroku verbundenen Repos hatte. Als ich es trennte, beendete es den Push.


0

Verwenden Sie diesen Befehl:

git remote add origin <url>
git push -f origin master
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.