7

我正在尝试使用 ssh 端口转发来击败公司防火墙:

ssh git@GIT_SERVER -L9418:GIT_SERVER:9418

在另一个终端我运行

git clone git://localhost:repositories/project.git

但我收到以下错误:

在 /Users/aboxer/tmp/glucosia/.git/ 中初始化空的 Git 存储库

致命:无法查找本地主机(端口存储库)(提供节点名或服务名,或未知)

谢谢!

4

4 回答 4

7

我很确定您的问题(或至少是导致此特定错误的问题)在这里:

git clone git://localhost:repositories/project.git

如果您查看man git push中的 url 符号列表,您将看到相关示例:

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
于 2010-03-28T14:37:22.660 回答
6

我在这里写了一个完整的回复/指南:http: //vladzloteanu.wordpress.com/2010/12/18/git-through-ssh-port-forwarding-ssh-tunneling/

于 2010-12-18T12:57:59.367 回答
1

Vlad Zloteanu 回答的简短版本:

设置隧道:

ssh ServerWithSSHAccessAddress -L 2000:GitServerAddress:22 -N , &

克隆仓库

git clone ssh://user@localhost:2000/my_repo.git
于 2013-11-06T09:30:33.867 回答
0

以下是对我有用的步骤。我的系统位于公司防火墙后面,并且已加入域:

  • 首先需要安装 npm
  • Fiddler 也需要处于运行模式。Fiddler 需要在“规则”下启用“自动验证”选项运行
  • 通过命令安装 Git:

npm 安装 git

  • 将协议从 git 更新为 https:

git config --global 网址。https://github.com/.insteadOf git://github.com/

于 2016-07-28T15:54:39.007 回答