Git从远程计算机将存储库拉到本地计算机

时间:2019-05-10 08:36:57

标签: linux git macos ssh

我已经在计算机B上建立了SSH连接,并且可以通过SSH正确连接到它。我想执行一个git pull命令,以便将存储库拉回计算机A而不是计算机B。这是否太麻烦了,还是有其他选择?

我基本上需要将计算机B上提取的任何git pull复制到计算机A。我唯一拥有的只是两者之间的ssh连接,并且回购只能从计算机B上进行。

4 个答案:

答案 0 :(得分:3)

如果我理解正确,那么您想通过SSH隧道使用Git,以便计算机A可以通过计算机B访问计算机C上的存储库REPO.git

  1. 在计算机A上,打开SSH隧道:

    ssh -L3333:compC:22 compB

  2. 从计算机A上的另一个控制台:

    git clone ssh:// git @ localhost:3333 / REPO.git

答案 1 :(得分:1)

我不确定它是否会回答您的问题,但是如果仅用于拉出,则可以在拉到B之后使用scp命令:

scp <source> <destination>

它将通过ssh连接复制为cp命令。

答案 2 :(得分:1)

另一种解决方案(我认为也是最直接的解决方案)是:

  • 通过SSH连接到远程计算机
  • 将远程更改推送到git分支
  • 从本地计算机的远程分支中拉出更改

答案 3 :(得分:1)

可以在double ssh tunnel上运行git命令。可接受的答案有些过时,ssh目前可以在没有netcatsocat之类的外部命令的情况下构建隧道。

在您的~/.ssh/config中进行配置:

Host server
   HostName git-server
   ProxyCommand ssh -W %h:%p B

这会将ssh配置为开始与主机B的连接,并打开一个 通过该连接建立到主机git-server的隧道。运行

git pull ssh://server/path/to/repository

另一种可能的解决方案是使用ext:: remote helper。请参阅链接的问题的第二个答案。运行

git pull "ext::ssh -t B ssh git-server %S '/path/to/repository'"