创建一个Git代理

时间:2014-05-29 11:19:51

标签: git proxy

我需要从无法访问它的服务器推送到git存储库(它在IP级别被阻止,而我的服务器的IP地址不在允许的段中)。

假设我有第二台服务器可以访问git存储库:是否可以将其设置为" git proxy"这样第一台服务器可以进入第二台服务器并进入主git存储库吗?

我想是的,而且我对我应该搜索/做什么以便设置它有一点想法,但我想知道是否有一种简单直接的方法来完成这项任务。< / p>

提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果您通过SSH使用Git,标准SSH tunnel应该可以让您推送到您的Git服务器,而无需第二个Git存储库。像这样:

  1. 建立从被阻止的服务器到包含到目标Git服务器的隧道的非阻塞服务器的SSH连接:

    ssh non.blocked.server -L 2222:git-host.com:22
    
  2. 在单独的终端中,当SSH连接仍处于活动状态时,发出针对localhost:2222的Git命令;这些将通过SSH连接进行隧道传输并发送到您的Git主机,同时看起来来自您的非阻止服务器:

    git ls-remote localhost:2222/some/repo.git
    
  3. 如果您正在使用HTTPS,请查看HTTP代理以执行相同的操作。

    最后,您可以将未阻止的服务器设置为被阻止服务器的Git远程服务器。然后,您可以git push从被阻止的服务器到非阻止的服务器,然后git push再次从非阻塞的服务器到Git主机。请注意,在这种情况下,您可能希望在未阻止的主机上create a bare repository而不是常规存储库。