我正在尝试使用ssh端口转发来破坏企业防火墙:
ssh git@GIT_SERVER -L9418:GIT_SERVER:9418
在另一个终端我运行
git clone git://localhost:repositories/project.git
但是我收到以下错误:
/Users/aboxer/tmp/glucosia/.git /
中初始化的空Git存储库致命:无法查找localhost(端口存储库)(提供节点名称或服务名称,或未知)
谢谢!
答案 0 :(得分:7)
我很确定你的问题(或至少导致这个特殊错误的问题)在这里:
git clone git://localhost:repositories/project.git
如果您查看man git push中的list of url notations,您会看到相关示例:
git://host.xz[:port]/path/to/repo.git/
使用冒号,您使用“存储库”作为端口名称,并且git(可以理解)无法连接到本地主机上的端口存储库!你在寻找的是:
git://localhost/path/to/repositories/project.git
或者
git://localhost/~user/repositories/project.git
编辑:
我可能应该从一开始就说过这个,但我实际上无法想到你需要在git中使用SSH隧道的原因。它的默认传输协议是ssh; git协议实际上只是为了允许在没有帐户的情况下从中获取公共存储库。如果您可以SSH到存储库所在的机器,您只需通过ssh:
获取git clone ssh://[user@]host.xz/path/to/repo.git
git clone ssh://[user@]host.xz/~/path/to/repo.git
git clone ssh://[user@]host.xz/~user/path/to/repo.git
答案 1 :(得分:6)
我在这里写了完整的回复/指南:http://vladzloteanu.wordpress.com/2010/12/18/git-through-ssh-port-forwarding-ssh-tunneling/。
答案 2 :(得分:0)
Vlad Zloteanu的简短版本答案:
设置隧道:
ssh ServerWithSSHAccessAddress -L 2000:GitServerAddress:22 -N , &
克隆回购
git clone ssh://user@localhost:2000/my_repo.git
答案 3 :(得分:0)
以下是适合我的步骤。我的系统是公司防火墙的后面,它是域名加入:
npm install git
git config --global url。https://github.com/.insteadOf git://github.com/