我想将 git 存储库从我公司的服务器克隆到我的个人计算机。从“外部”访问这些服务器的唯一方法是通过 ssh 登录到“machine1”
ssh [email protected]
不幸的是,git 没有安装在该特定机器上。所以像这样的 git 克隆
git clone ssh://[email protected]/path/to/repo <local-repo-path>
行不通的。我要做的就是在通过“machine1”登录网络后更改为另一台安装了 git 的机器“machine2”。因此,为了让克隆工作,我必须执行类似的命令
ssh machine2
在实际执行 git 命令之前。有什么办法可以做到这一点吗?也许是像预克隆钩子之类的东西?
是否可以以某种方式将远程存储库打包到文件(补丁?)中,将该文件复制到本地计算机上并从该文件克隆?
期待您的提示和建议!
您可以通过配置 ssh 代理命令来完成此操作。注意:这假设netcat在代理服务器上可用;如果需要的话,你可以用 perl 中的类似脚本替换 netcat 或其他脚本。
将以下内容添加到您的~/.ssh/config
,如果需要的话创建它:
Host machine1
User yourusername
HostName machine1.yourcompany.com
Host machine2
User yourusername
ProxyCommand ssh machine1 nc %h %p
HostName machine2.internal.network
现在你可以ssh machine2
它会自动通过 machine1 建立隧道。这意味着使用 git 非常简单git clone ssh://machine2/path
.
还可以使用以下命令将存储库捆绑到单个文件中:git bundle命令。不过,对于正确的 ssh 代理设置来说,这并不是必需的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)