繁体   English   中英

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

[英]Git pull a repository to local computer from a remote computer

我已经在计算机B上建立了SSH连接,并且可以通过SSH正确连接到它。 我想执行一个git pull命令,以便它将回购信息拉到计算机A而不是B。这是否太麻烦了,或者是否有替代方法?

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

如果我理解正确,那么您想通过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

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

scp <source> <destination>

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

另一个解决方案(也是我认为最简单的解决方案)是:

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

可以在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'"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM