0

标题基本概括了所有内容:

我将 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 中,我收到一个带有服务器警告的弹出窗口,然后像以前一样提示我输入密码,一切正常,然后推送的提交列表的最终确认是空的,顶部有一个错误

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

我在一个尚未推送到远程的新分支中,如果这有什么不同的话。

有人见过这个吗?

4

1 回答 1

0

对于任何在我之后追随同一个兔子洞的人......

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

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

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

# 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 的安全性。

于 2013-07-01T09:47:20.177 回答