创建一个Git代理



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

让我们假设我有第二台服务器可以访问git存储库:是否可以将其设置为"git代理",以便第一台服务器可以推送到第二台服务器,而这台服务器可以推送到git主存储库?

我想是的,我有一个关于我应该搜索/做什么来设置它的小想法,但是我想知道是否有一个简单直接的方法来完成这个任务。

提前感谢。

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

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

    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
    

如果你使用HTTPS,查看HTTP代理来做同样的事情。

最后,您可以将非阻塞服务器设置为阻塞服务器的Git远程服务器。然后你可以把git push从阻塞的服务器转移到未阻塞的服务器,然后再把git push从未阻塞的服务器转移到Git主机。注意,在这种情况下,您可能希望在非阻塞主机上创建一个裸存储库,而不是一个常规存储库。

最新更新