我最近设置了一个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
答案 0 :(得分:13)
我遇到了同样的问题。决议如下:
Eclipse view --> Git repositories
)中的原始推送和提取。.ssh
文件夹(用户/ .ssh)并删除密钥文件(公开和私有)。Window --> Preferences --> General tab --> Network connections --> SSH2
)。github/SSH
密钥修改强> 您可能不需要删除所有密钥文件。如果您之前已经添加了一个密钥文件(可能在设置本机Git时),您只需在密钥列表中添加该文件的名称,它就可以使用。
答案 1 :(得分:4)
这似乎对我有用:
除了推送:https://stackoverflow.com/a/9889350
之外,请做Firoz和Nishant所说的一切在桌面上创建或编辑以下文件:
文件:〜/ .ssh / config 内容:
Host github.com
User [your_github_username]
Hostname github.com
PreferredAuthentications publickey
IdentityFile [path_to_private_key]
在项目的Eclipse Git Setup中执行以下操作:
有关有用信息,请参阅此GitHub SSH帮助页面:http://help.github.com/ssh-issues/
最初遭遇“会话失败”和“无法打开git-upload-pack”错误后,为我工作。希望它也能帮助其他所有人。
祝你好运!答案 2 :(得分:2)
我遇到了同样的问题,我发现了非常愚蠢的解决方案。
我采取了以下步骤:
我不知道为什么以及为什么但是当我遇到上述问题时,上述步骤对我有用。我不知道为什么eclipse会抛出这样的异常,为什么它会以这种方式解决。
您也可以尝试使用eclipse以外的其他方式。例如。 `TortoiseGit`或`SmartGit`等。
答案 3 :(得分:0)
我遇到了同样的问题。我通过将 JAVA_HOME 变量指向 jdk 6 来修复它。它原本指向 jdk 5 。
答案 4 :(得分:0)
我收到此错误消息并且当我的一位同事通过电子邮件向我发送了两个文件id_rsa和id_rsa(MS Pub doc)时,我将它们修复为C:Users \ [userID] \。ssh,并关闭下来并重新启动我的IDE。
答案 5 :(得分:0)
我对EGit有这个问题并最终解决了。不知何故,有时事情会搞砸。如果你无法通过Eclipse解决它,只需使用带有Windows的git bash转到你的“git”文件夹。使用Linux它更容易:只需打开终端即可。
出现此问题是因为用户名,密码和ssh键搞砸了。
因此,使用命令“git remote show origin”并确保原点是否为username@github.com......
有时Eclipse只是将“git”作为用户名,因此请确保使用命令{{}更改它,以获得正确的用户名。 1}}。它应该自动更改eclipse中的配置。
...最佳
答案 6 :(得分:0)
我也有这个问题。
Git Bash中的以下命令在这种情况下很方便:git remote prune origin
这在损坏的分支中配置了拉/推。