2012-12-12 8 views
5

Non riesco a trasmettere a github. Sono stato in grado di spingere piccoli cambiamenti, ma questa volta, si blocca dopo che scrive questo:git si blocca su push

git push origin master 
Counting objects: 22, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (12/12), done. 
Writing objects: 100% (12/12), 1.51 KiB, done. 
Total 12 (delta 8), reused 0 (delta 0) 

Sulla mia Ubuntu Process Manager, ho visto che ssh si blocca quando provo a spingere qualcosa e che è: ssh git @ github.com git-ricevere-pack 'xxx/yyy.git'

Quando provo ad eseguire direttamente il comando sul mio terminale, ora si blocca dopo che scrive questo:

0078...7d4 refs/heads/master report-status delete-refs side-band-64k quiet ofs-delta 
0000 

Tutti gli altri si assottiglia funziona bene, ma non posso spingere. Quale potrebbe essere la ragione?

Ulteriori informazioni: Ho ricreato il file git e cambiato il telecomando in HTTP da SSH. Ora ottengo questo errore quando provo a spingere:

Counting objects: 17, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (9/9), done. 
Writing objects: 100% (9/9), 1.19 KiB, done. 
Total 9 (delta 6), reused 0 (delta 0) 
error: RPC failed; result=52, HTTP code = 0 
fatal: The remote end hung up unexpectedly 
fatal: The remote end hung up unexpectedly 
Everything up-to-date 

Ulteriori informazioni 2: Sono stati testati per ore e sembra che la mia connessione di rete è il problema. Ho provato a spingere da un'altra connessione, e ha funzionato molto bene. Quale potrebbe essere la ragione di questo? A proposito, il firewall del modem è disabilitato.

+0

Credo che il tuo problema sia lo stesso di questo: [GIT impossibile da spingere dopo l'aggiunta] (http://stackoverflow.com/questions/14123170/git-impossible-to-push-after-add). Dare una prova a quella soluzione raccomandata. – IQAndreas

risposta

-2

Verificare se la connessione di rete è troppo lenta per il caricamento. Forse hai solo bisogno di tempo. Puoi monitorare la tua connessione di rete per vedere se stai inviando i dati a monte?

+2

Sto caricando un'immagine G 300 in Gmail in meno di 5 secondi, non penso che la mia connessione di rete sia troppo lenta. C'è un modo per monitorare il caricamento di git? Potrei provarci. – gzg

+1

Controlla se hai un problema MTU sulla tua connessione di rete. Se si abbassa la MTU dell'interfaccia del computer a 1280, si è in grado di spingere? –

0

Nel mio caso il problema era correlato con i diritti di accesso al repository. Avevo letto solo l'accesso, dopo aver aggiunto i diritti per scrivere, il problema è stato risolto.

+0

Non sono sicuro del motivo per cui è stato votato. Questo ha risolto il problema per me, vale la pena ricontrollare le autorizzazioni del tuo file system sul lato remoto, prima le persone. (Non sono sicuro del motivo per cui non viene generato alcun errore nel processo.) – Adambean

-1

Prima esecuzione il seguente:

env | grep SSH_ASKPASS 

se si ottiene nulla, quindi è necessario impostare tale valore. Se stai usando GNOME, trovare la posizione di gnome-ssh-askpass.sh, che di solito si trova nel modo seguente:

find/| grep gnome-ssh-askpass 

e si trova in genere nella directory /etc/profile.d. Normalmente, questo si sarebbe caricato automaticamente, ma per qualche motivo non lo era. in modo da eseguire il seguente:

source /etc/profile.d/gnome-ssh-askpass.sh 

(in alternativa, si può semplicemente chmod +x il file ed eseguirlo direttamente, tocca a voi)

Una volta fatto, verificare che non v'è un valore per env | grep SSH_ASKPASS e spingere quindi git funzionerà di nuovo

Se non avete trovato il file gnome-ssh-askpass.sh, poi fare un yum search ssh-askpass e installare il pacchetto (di solito yum install openssh-askpass)

Per apt-get, fare qualcosa di simile supponendo che si sta utilizzando gnome, ma se kde, allora forse c'è a kde-ssh-askpass ??

8

Ho passato le ultime 5 ore cercando di risolvere un problema simile. Innanzitutto, stai eseguendo questo tramite un tunnel o una connessione VPN?

Si scopre che il MTU (Maximum Transmission Unit) di un tunnel può essere configurato in modo errato in quanto un router nel mezzo del percorso di rete può supportare solo un MTU inferiore ma questo non è noto al software VPN/tunnel, risultante in pacchetti persi.

Quindi la risposta rapida è quella di cercare di abbassare il MTU della connessione:

sudo ifconfig eth0 mtu 1300 

Qui sto impostando il MTU per l'interfaccia eth0, sostituire con l'interfaccia che si sta usando per accedere al git server. L'MTU predefinito è solitamente 1500.

Per OpenVPN ho dovuto aggiornare l'interfaccia tun0. C'è un modo migliore/più robusto per farlo nella configurazione di OpenVPN: usa le opzioni link-mtu <n> e mssfix.

+1

+1 perché mi hai appena salvato ore. Quello che non riesco a capire è perché l'MTU da qualche parte tra i miei endpoint è cambiato. – DorianFM