Eclipse Egit fetch&;拉接被拒绝

Eclipse Egit fetch&;拉接被拒绝,eclipse,ubuntu,egit,Eclipse,Ubuntu,Egit,我已经在两个ubuntu系统上安装了用于eclipse的Egit插件,并在两个系统上创建了两个新项目,并将其共享(团队>共享)。使用Egit与其他用户一起获取和拉取项目的正确方法是什么 错误连接被拒绝您需要配置一个新的远程配置,同时填充获取和推送URI。 您需要选择以下选项之一: local:file://(两台服务器之间是否有直接共享路径?):这是在项目之间共享的最简单方法,不需要任何类型的侦听器 git:这意味着端口9418没有被本地防火墙阻止。git守护进程需要处于活动状态才能侦听请求

我已经在两个ubuntu系统上安装了用于eclipse的Egit插件,并在两个系统上创建了两个新项目,并将其共享(团队>共享)。使用Egit与其他用户一起获取和拉取项目的正确方法是什么


错误
连接被拒绝

您需要配置一个新的远程配置,同时填充获取和推送URI。
您需要选择以下选项之一:

  • local:file://(两台服务器之间是否有直接共享路径?):这是在项目之间共享的最简单方法,不需要任何类型的侦听器
  • git:这意味着端口9418没有被本地防火墙阻止。git守护进程需要处于活动状态才能侦听请求
  • ssh:意味着git是以标准方式安装的,因为ssh守护进程通常不授权在打开/访问远程shell会话时设置自定义环境变量
  • http:您需要一个http侦听器,至少是apachehttpd中的gitweb
如果您刚刚在一台服务器上创建了一个repo,那么您需要在另一台服务器上进行克隆(不需要Egit),然后“将一个现有的Git repo添加到此视图”(Git Repository视图):这样,就已经设置了第一个(fetch,pull)远程地址


将评论总结如下:

  • 使用git协议意味着:除了使用git://url之外,客户端(使用Egit)无需任何操作。
    但是您需要在服务器端运行一个git守护进程,否则将不会侦听您的请求(默认情况下在端口9418上完成)
  • 您可以通过ssh使用该协议,也可以不使用该协议(ssh不是强制性的,但如果没有它,就不能单独使用git协议进行身份验证)
  • 如果使用ssh,同样需要在服务器端运行openssh守护进程,而像gitolite这样基于ssh的层(仍然在服务器端)更好,因为它不仅在远程安全shell中执行任何命令,而且只允许git命令,并且只允许权限repos/分支/目录

@user465464:git协议意味着您已经在服务器端启动了git守护进程。是吗?ssh本身不允许推送。它必须是ssh over git,或者是ssh over脚本调用正确的git命令(比如gitolite)。同样,如果您有通过共享路径直接访问文件的方法,本地协议是最容易设置的。@user465465:如中所述,您需要启动
git守护进程才能使任何
git://
克隆工作。(
sudo-u git-git-daemon--base-path=/home/git/repositories/--export-all
)。如果您使用gitosis(甚至更好的gitolite),任何克隆都将通过ssh实现。如果您根本没有gitosis(并且如果
git守护进程
已经启动)@user465465,那么您可以使用git协议而不使用ssh进行克隆:我提到的命令(主要是
git守护进程
)位于服务器端(具有远程目标repo的命令)。EGit位于客户端(不应该包含任何命令)@user465465:请注意,除非是快进更新,否则获取不会更新您的文件。也就是说,如果您已经做出了任何承诺,那么获取将根本不会触及您的文件:它只会在本地Git repo中的“
remotes
”命名空间中获取远程分支的历史记录。要在当前分支中合并/获取这些文件,您需要提取这些文件(
pull=fetch+merge
):
Team>pull
。请参阅和@user465464:好的,我已经用这些评论中的结论更新了这个答案。