繁体   English   中英

在XCode 4中使用gitosis git存储库

[英]Using a gitosis git repository with XCode 4

嗨,我一直在尝试从XCode 4访问我的git存储库。

使用命令行工具,一切正常。 我可以使用以下方法克隆我的存储库:

git clone git@example.com:somerepo.git

但是在XCode中,当尝试使用时:

ssh://git@example.com:somerepo.git

它只是一直在问我一个我根本不想使用的密码。

同样的事情发生在:

git://git@example.com:somerepo.git

除了我也收到“连接被拒绝:无法连接到套接字”错误消息。

任何想法如何解决这个问题?

在Xcode 4.2中,以下位置字符串对我有用

ssh://git@example.com:22/somerepo.git

要求ssh://部分告诉Xcode应该使用哪种协议。 由于URL现在包含一个方案,因此还需要使用端口:22指定符来使Git满意。 没有端口,我在命令行上收到以下(奇怪)错误消息:“ ssh:连接到主机端口22:连接被拒绝”。

顺便说一句:当我在“管理器”窗口中添加我的存储库时,Xcode含糊地谈论了“需要身份验证”的问题,然后开始旋转活动指示器。 尽管我能够立即克隆存储库,但我不得不重新启动Xcode才能摆脱活动指示器。

我发现使用ssh://git@git.mydomain.com/myrepo是可行的。 请注意,“ git”是我用于gitolite的用户名(严格按照其网站上的说明,为用户正确添加了公共密钥),git.mydomain.com是gitolite的安装主机名,“ myrepo”是存储库的名称(对我而言,它无需在末尾添加“ .git”即可工作)。

另一部分是确保您的OpenSSH密钥位于〜/ .ssh / id_rsa(私有;将其chmod设置为0600否则将不起作用)和〜/ .ssh / id_rsa.pub(公开;我不知道这是否在是必需的,但我从来没有打扰过检查)。

至少对于我来说,以上方法一直有效,并且没有“副作用”。

您应该确保未启用任何代理,因为这有时会导致目标无法在xcode中访问。

填写存储库名称后,必须检查存储库“类型”是否为git,而不是SVN,因为我发现xcode可以更改类型。

最后,您应该可以成功访问该存储库。

我有使用GIT-SCM的自己的GIT服务器。

我尝试了URL ssh://user@git.mydomain.com:22/gitname.git并将私钥放在~/.ssh/user

CHMOD至0600

当我连接时,它询问我用户名和密码,但没有密码

XCode 4在〜/ .ssh目录中寻找密钥对

您需要将公钥添加到远程存储库中的用户

然后XCode可以克隆存储库

至少对于Xcode 4.2,不需要指定协议。 只需使用

git@example.com:somerepo.git

由于我发现该线程的症状相似但问题不同,所以我要补充一点,我忘记为新用户添加gitosis的密钥,所以我遇到了一些我认为与Xcode相关但实际上是gitosis配置的问题问题。

通过git协议 (这是您在命令行中完成的操作)克隆Git存储库与使用ssh + git协议 (这是您在XCode4中首先尝试的操作)不同

如果在$HOME/.ssh目录中未找到公钥,则只有ssh会要求输入密码。
而且,如果您可以访问服务器example.com上的端口9418,则不需要ssh进行克隆(但是,如果example.com服务器上设置了身份验证层,则可能需要它)。

“无法连接袜子”错误是防火墙/代理问题的典型代表:请参见Git错误:致命:无法连接套接字(无效参数)

检查您的git config -l :XCode 4可能没有使用与git在命令行中使用的完全相同的设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM