2012-01-25 3 views
15

Recentemente ho impostato un account github per archiviare il codice sorgente di un progetto su cui ho lavorato.Come invio a Git Repo dato il seguente errore: Si è verificata un'eccezione interna durante il push: ssh: //[email protected]/xxx/xxx.git: la sessione è inattiva

Sto usando egit eclissare plugin per spingere le modifiche al github.

Ho premuto con successo il codice iniziale e 2 modifiche successive. Tuttavia, quando ho tentato di spingere il terzo cambiamento non ero in grado. La seguente eccezione appare nel log degli errori di eclissi.

Se qualcuno potrebbe dirmi la causa di questo errore, o dirmi come posso fare il debug del problema, sarebbe di grande aiuto.

org.eclipse.jgit.api.errors.JGitInternalException: Exception caught during execution of push command 
    at org.eclipse.jgit.api.PushCommand.call(PushCommand.java:156) 
    at org.eclipse.egit.core.op.PushOperation.run(PushOperation.java:227) 
    at org.eclipse.egit.ui.internal.push.PushOperationUI.execute(PushOperationUI.java:145) 
    at org.eclipse.egit.ui.internal.push.PushOperationUI$1.run(PushOperationUI.java:202) 
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) 
Caused by: org.eclipse.jgit.errors.TransportException: ssh://[email protected]/xxx/xxx.git: session is down 
    at org.eclipse.jgit.transport.JschSession$JschProcess.<init>(JschSession.java:154) 
    at org.eclipse.jgit.transport.JschSession$JschProcess.<init>(JschSession.java:118) 
    at org.eclipse.jgit.transport.JschSession.exec(JschSession.java:91) 
    at org.eclipse.jgit.transport.TransportGitSsh$SshPushConnection.<init>(TransportGitSsh.java:306) 
    at org.eclipse.jgit.transport.TransportGitSsh.openPush(TransportGitSsh.java:152) 
    at org.eclipse.jgit.transport.PushProcess.execute(PushProcess.java:130) 
    at org.eclipse.jgit.transport.Transport.push(Transport.java:1120) 
    at org.eclipse.jgit.api.PushCommand.call(PushCommand.java:152) 
    ... 4 more 
Caused by: com.jcraft.jsch.JSchException: session is down 
    at com.jcraft.jsch.Session.openChannel(Session.java:750) 
    at org.eclipse.jgit.transport.JschSession$JschProcess.<init>(JschSession.java:147) 
    ... 11 more 
+0

Puoi pubblicare una schermata della configurazione push in egit? È Team> Remoto> Confrontare Push To Upstream. – bsimic

risposta

13

Ho riscontrato lo stesso problema. Risoluzione seguente:

  • Elimina origine push e recupera in remoto (Eclipse view --> Git repositories).
  • Chiudi Eclipse.
  • Vai .ssh cartella (Users/.ssh) ed eliminare i file chiave (pubblico e privato).
  • Avvia eclissi e rigenera i tasti (Window --> Preferences --> General tab --> Network connections --> SSH2).
  • Copiare la chiave e aggiungerlo al github/SSH chiavi
  • In Eclipse aggiungere nuovo telecomando e spinta.

Modifica Potrebbe non essere necessario eliminare tutti i file di chiave. Se hai già aggiunto un file chiave in precedenza (forse durante l'impostazione di Git nativo), puoi semplicemente aggiungere il nome di quel file nell'elenco delle chiavi, e funzionerà.

+1

cosa significa nel primo punto sopra: "Cancella origine push"? – Arun

2

Ho affrontato lo stesso problema e ho scoperto una soluzione estremamente stupida.
ho preso i seguenti passi:

  • ho inserito nel repository git del mio progetto da navigatore e non ha firmato fuori.
  • ho copiato l'URL http -spinta o tirare dal repository del progetto da github .
  • ho incollato il URL nel mio Plug-in Eclipse mentre si spinge il codice (non ha utilizzato il già memorizzato uno anche se entrambi erano stesso)

Non so che cosa e perché ma i passaggi sopra hanno funzionato per me ogni volta che ho affrontato il problema di cui sopra. Non so perché Eclipse lancia tali eccezioni e perché viene risolto in questo modo.

Si può anche provare a spingere utilizzando altri modi al di fuori di Eclipse. per es. `TortoiseGit` o` SmartGit` ecc.

4

Questo sembrava funzionare per me:

Fare tutto Firoz e Nishant dire se non spinta: https://stackoverflow.com/a/9889350

Creare o modificare il seguente file sul desktop:

File: ~/.ssh/config Contenuto:

Host github.com 
    User [your_github_username] 
    Hostname github.com 
    PreferredAuthentications publickey 
    IdentityFile [path_to_private_key] 

nella configurazione Eclipse Git per il vostro progetto procedere come segue:

  1. URI: git @ github.com: [repo_owner_username]/[repo_name] .git
  2. Protocollo: ssh
  3. Nome utente: git
  4. Password: [leave_blank]
  5. Salvare e spingere.

Vai a questa pagina GitHub SSH Aiuto per info utili: http://help.github.com/ssh-issues/

Ha lavorato per me dopo aver inizialmente la sofferenza attraverso la "sessione è down" e "non può aprire git-upload-pack" errori. Spero che aiuti anche tutti gli altri.

Buona fortuna!

0

Ho avuto lo stesso problema. L'ho risolto indicando la variabile JAVA_HOME su jdk 6. Originariamente puntava a jdk 5.

0

Ho ricevuto questo messaggio di errore ed è stato risolto quando uno dei miei colleghi mi ha inviato via email i due file id_rsa e id_rsa (MS Pub doc), li ho inseriti in C: Users \ [userID] \. Ssh, e spegnere e riavviare il mio IDE.

0

Ho riscontrato questo problema con EGit e l'ho risolto. In qualche modo a volte le cose si incasinano. Se non riesci a risolverlo tramite Eclipse, vai alla cartella "git" con git bash con Windows. Con Linux è ancora più semplice: basta aprire il terminale.

Questo problema si verifica a causa di username, password e chiavi ssh che si sono incasinati. Quindi, usa i comandi "git remote show origin" e assicurati che l'origine sia [email protected] A volte Eclipse mette semplicemente "git" come nome utente quindi assicurati di avere il nome utente corretto cambiandolo con il comando git remote set-url origin https://[email protected]/restofthe url. Dovrebbe cambiare automaticamente le configurazioni in eclissi.

Best ...

0

Ho riscontrato questo problema.

il seguente comando in Git Bash, viene pratico in tali scenari: git origine remota prugna

Questa configurato il tiro/spinta nel ramo corrotto.