1

对于 RedHat Openshift,它具有以下用于克隆到本地主机的说明: git clone ssh://12272296@jimX-jimsapps.rhcloud.com/~/git/jimX.git/

我想要做的是在 c:/xampp/htdocs/rhos 中创建一个文件夹(在我的本地主机上)

所以我尝试:(打开命令提示符并坐在 C:) git clone ssh://12272296@jimX-jimsapps.rhcloud.com/~/git/xampp/htdocs/rhos.git/

我得到一个错误:致命:协议错误:错误的行长度字符:Inva

您是否必须在本地计算机上克隆成 jimX 形式的东西?

克隆到 c:/xampp/htdocs/rhos 的命令是什么?

谢谢,吉姆

4

3 回答 3

0

这里的关键问题之一是所讨论项目的 Git 配置文件;问题是无法正确读取此文件以检索连接到存储库的必要信息。

您应该确保每行只有一个参数,并且没有杂散字符或空格。如果您确实在配置文件中发现了此类错误,那么此修复应该有助于缓解问题并允许您再次访问存储库。

于 2013-10-05T10:14:19.677 回答
0

Git FAQ 提到

这可能意味着您在以命令模式登录 ssh 时有一些无关的字符、信息消息或其他内容。

要对此进行测试,请执行以下操作:

ssh ssh://12272296@jimX-jimsapps.rhcloud.com echo testing commands

你应该只看到testing commands返回。
如果有任何其他字符,您应该检查您的 dot shell rc 文件以查找任何 echo 或其他可能产生输出的命令。

这也是这篇文的结论:

啊!这是我解决问题所需的信息。
就我而言,问题实际上是我的and中有一个“ echo” ,这影响了协议。 删除回声解决了这个问题。.bash_profile.bashrc

于 2012-10-13T20:57:08.910 回答
0

我刚刚遇到了同样的问题。问题是您分配的外壳程序 oo-trap-user 执行以下检查:

# replace leading tilde (~) with user's home path
realpath = os.path.expanduser(thearg)
if not realpath.startswith(config['GEAR_BASE_DIR']):
    syslog.syslog("Invalid repository: not in openshift_root (%s) - %s: (%s)" %
                  (config['GEAR_BASE_DIR'], thearg, realpath))
    print "Invalid repository %s: not in application root" % thearg
    sys.exit(3)

所以 git 存储库必须在 GEAR_BASE_DIR 中,这让你只剩下你的主目录。

调试,做某事ssh yourmachine git-receive-pack /path/to/your/location

于 2013-05-05T13:01:01.100 回答