Как мне нажать на Git Repo при следующей ошибке: Внутреннее исключение произошло во время push: ssh: //git@github.com/xxx/xxx.git: сессия не работает - PullRequest
15 голосов
/ 25 января 2012

Недавно я настроил учетную запись github для хранения исходного кода проекта, над которым я работал.

Я использую плагин egit eclipse , чтобы перенести изменения в github.

Я успешно передал исходный код и 2 последующих изменения.Однако когда я попытался продвинуть третье изменение, я не смог.Следующее исключение появляется в журнале ошибок затмения.

Если кто-то может сказать мне причину этой ошибки или сказать, как я могу отладить проблему, это было бы очень полезно.

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://git@github.com/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

Ответы [ 7 ]

13 голосов
/ 27 марта 2012

У меня возникла такая же проблема.Разрешение должно быть следующим:

  • Удалить исходное извлечение и выборку в удаленном режиме (Eclipse view --> Git repositories).
  • Закрыть Eclipse.
  • Перейти к папке .ssh (Users /.ssh) и удалите файлы ключей ( public и private ).
  • Запустите затмение и восстановите ключи (Window --> Preferences --> General tab --> Network connections --> SSH2).
  • Copyключ и добавьте его к github/SSH Ключи
  • В Eclipse добавьте новый пульт и push .

Редактировать Возможно, вам не нужно удалять все ключевые файлы.Если вы уже добавили файл ключей ранее (возможно, при настройке собственного Git), вы можете просто добавить имя этого файла в список ключей, и он будет работать.

4 голосов
/ 23 мая 2012

Мне показалось, что это работает:

Делайте все, что говорят Фироз и Нишант, кроме push : https://stackoverflow.com/a/9889350

Создайте или отредактируйте следующий файл на рабочем столе:

Файл: ~ / .ssh / config Содержание:

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

В настройках Eclipse Git для вашего проекта сделайте следующее:

  1. URI: git@github.com: [repo_owner_username] / [repo_name] .git
  2. Протокол: SSH
  3. Имя пользователя: git
  4. Пароль: [left_blank]
  5. Сохраните и нажмите.

См. Эту страницу справки GitHub SSH для полезной информации: http://help.github.com/ssh-issues/

Сработало для меня после того, как изначально страдал от "сеанса не работает" и ошибок "не могу открыть git-upload-pack". Надеюсь, это поможет всем остальным.

Удачи!

2 голосов
/ 16 февраля 2012

Я столкнулся с той же проблемой, и я нашел решение, которое является чрезвычайно глупым.
Я предпринял следующие шаги:

  • Я вошел в репозиторий git моего проекта из браузера и не вышел из системы.
  • Я скопировал http url в push или pull из репозитория проекта из github .
  • Я вставил url в свой плагин eclipse , нажимая код (не использовал уже сохраненный, хотя оба они были одинаковыми)

IНе знаю, что и почему, но вышеперечисленные шаги работали для меня всякий раз, когда я сталкивался с вышеуказанной проблемой.Я не знаю, почему затмение генерирует такие исключения и почему оно решается таким образом.

Вы также можете попробовать толкать, используя другие способы, кроме затмения.например`TortoiseGit` или` SmartGit` и т. Д.

0 голосов
/ 27 февраля 2015

У меня тоже была эта проблема.

Следующая команда в Git Bash пригодится в таких случаях: git remote prune origin

Это настроило Pull / Push в поврежденной ветви.

0 голосов
/ 03 сентября 2014

У меня была эта проблема с EGit, и я наконец решил ее.Иногда что-то путается.Если вы не можете решить эту проблему с помощью Eclipse, просто перейдите в папку «git» с помощью git bash с Windows.С Linux это еще проще: просто откройте терминал.

Эта проблема возникает из-за неправильной работы имени пользователя, пароля и ключей ssh.Итак, используйте команды «git remote show origin» и убедитесь, что в качестве источника указано username@github.com...... Иногда Eclipse просто вводит «git» в качестве имени пользователя, поэтому убедитесь, что у вас есть правильное имя пользователя, изменив его с помощью команды git remote set-url origin https://usrname@github.com/restofthe url.Это должно автоматически изменить конфигурации в затмении.

Бест ...

0 голосов
/ 29 января 2013

Я получил это сообщение об ошибке, и оно было исправлено, когда один из моих коллег отправил мне по электронной почте два файла id_rsa и id_rsa (MS Pub doc), я поместил их в C: Users \ [userID] \. Ssh и закрыл и перезапустил мою IDE.

0 голосов
/ 05 декабря 2012

У меня была такая же проблема.Я исправил это, указав переменную JAVA_HOME на jdk 6 .Первоначально он указывал на JDK 5 .

...