无法使用git-receive-pack和git-upload-pack set通过SSH将Eclipse / Egit推送到存储库

时间:2013-06-26 11:39:45

标签: eclipse git egit git-push

标题几乎说明了一切:

我正在使用Eclipse(Juno SR2)和EGit插件(2.2.0)。

我使用SSH设置了一个远程存储库,并且因为没有在远程设置gitd,并且因为git工具不在路径上,所以我在配置文件中有以下设置:

[remote "origin"]
    url = ssh://moi@fully.qualified.host/home/colleague/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    uploadpack = ~colleague/bin/git-upload-pack
    receivepack = ~colleague/bin/git-receive-pack

从命令行执行普通git push显示服务器的安全警告,然后提示我输入我的ssh密码,然后完美地推送。

然而在Eclipse中,我得到一个带有服务器警告的弹出窗口,然后我像以前一样提示输入我的密码,一切都很好,然后推送的提交列表的最终确认是空的,顶部有一个错误< / p>

ssh://moi@fully.qualified.host/home/colleague/repo.git: push not permitted

我在一个尚未被推到遥控器的新分支内部,如果这有任何区别的话。

之前有人见过这个吗?

1 个答案:

答案 0 :(得分:0)

对于跟在我后面的同一个兔子洞的人...

我找到了一个解决方法。您无法在存储库配置中设置接收和上传包的位置,因此必须从配置中删除它:

[remote "origin"]
    receivepack = /blah/bin/git-receive-pack
    uploadpack = /blah/bin/git-upload-pack

我正在远程使用Bash shell,并且在.bashrc开始之前,当shell是非交互式的时候退出,该位置会被添加到路径中,如下所示:

# If not running interactively, most of what follows is not worth doing
if [ -z "$PS1" ] ; then
  # Make sure my extra stuff is on the path even in non-intaractive shells (I'm looking at you SSH!)
  export PATH=/blah/bin:$PATH
  return
fi

我现在可以从本地命令行或通过Eclipse / EGit推送。但当然,作为妥协,我已经降低了我的非交互式shell的安全性。