![](/img/trans.png)
[英]Check history of the git pulls made on a local repository from a remote branch
[英]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。
在计算机A上,打开SSH隧道:
ssh -L3333:compC:22 compB
从计算机A上的另一个控制台:
git clone ssh:// git @ localhost:3333 / REPO.git
我不确定它是否会回答您的问题,但是如果仅用于拉出,则可以在拉到B之后使用scp命令:
scp <source> <destination>
它将通过ssh连接复制为cp命令。
另一个解决方案(也是我认为最简单的解决方案)是:
可以在double ssh tunnel上运行git
命令。 公认的答案有点过时了, ssh
当前可以在没有外部命令(例如netcat
或socat
情况下构建隧道。
在~/.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.