HOWTO · Git

Git Push hängt

Dieses Tutorial demonstriert das Aufhängen von Dateien bei der Verwendung von git push in Git.

Auf dieser Seite

Manchmal erleben Entwickler eine Situation, in der sie einige Änderungen mit dem Befehl git push in das Repository übertragen möchten, und nachdem sie diesen Befehl angewendet haben, erfahren sie, dass ihr System hängen geblieben ist, und sie fühlen sich in dieser Situation ahnungslos.

Diese Situation tritt auf, wenn die Entwickler einen PC mit sehr alter Technologie haben und ihr Speicher nicht genügend Unterstützung bietet, um diese Aktionen zu verwalten.

Eine der richtigen und langfristigen Lösungen für dieses Problem besteht darin, den PC oder das System zu aktualisieren und die Git-Befehle ohne Probleme zu verwenden.

Dieses Tutorial hilft uns, das Problem des Aufhängens zu lösen, wenn ein git push mit dem Git-Befehl auf riesige Dateien angewendet wird.

Git Push Hangs-Lösung

Entwickler stehen diesen Problemen normalerweise aufgrund der kolossalen Größe gegenüber, die viel Zeit zum Hochladen benötigt. Deshalb sollte die Datei beim ersten Durchlauf nicht im Push-Befehl hinzugefügt werden.

git config --global http.postBuffer 524288000

Die folgenden Befehle gelten nur für ssh.

  1. Hier müssen wir ein Skript wie ~/sshv.sh erstellen.

    #!/bin/bash
    ssh -vvv "$@"
    
  2. Dann müssen wir Berechtigungen mit dem folgenden Befehl hinzufügen.

    chmod u+x ~/sshv.sh
    
  3. Schieben Sie es dann in das Repo, in das Sie den Code verschoben haben.

    GIT_SSH=~/sshv.sh git push <rest of your command>`
    

Verwenden Sie Git askpass

Wir können dieses hängende Problem auch mit dem folgenden Befehlszeilenskript lösen.

git config --global core.askpass "git-gui--askpass"

Der obige Befehl wird meistens verwendet, wenn der Befehl das erste Argument nicht korrekt an den Knoten liefert, was das Hängenproblem im Befehl git push in Git verursacht.

SSH-Agent neu starten

Wenn das Problem immer noch nicht behoben ist, besteht die endgültige Lösung für dieses Problem darin, den SSH-Agenten mit dem folgenden Befehl in Git neu zu starten.

killall ssh-agent; eval `ssh-agent`

Diese SSH-Schlüssel werden meistens an den Orten ~/.ssh/id_rsa und ~/.ssh/id_rsa.pub gespeichert. Wir können diese Schlüssel auch an einen anderen Ort übertragen, falls dieses Problem in Zukunft weiterhin auftritt.

Aber der obige Befehl setzt Ihre SSH-bezogenen Probleme zurück und das hängende Problem wird schließlich gelöst.