标题几乎说明了一切:
我正在使用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
我在一个尚未被推到遥控器的新分支内部,如果这有任何区别的话。
之前有人见过这个吗?
答案 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的安全性。