从远程 ssh 存储库进行 Git 克隆 - 在执行克隆命令之前更改远程网络上的机器

2023-11-21

我想将 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(使用前将#替换为@)

从远程 ssh 存储库进行 Git 克隆 - 在执行克隆命令之前更改远程网络上的机器 的相关文章

随机推荐

  • WebRTC 数据通道服务器到客户端的 UDP 通信。目前可以吗?

    除了使用 UDP 之外 是否可以以模仿 WebSocket 功能的方式在 Node js 上使用 WebRTC 数据通道 本质上 我希望有一个运行 Node js 的服务器 浏览器客户端可以通过 JavaScript 建立全双工双向 UDP
  • 相当于 build-arg 的 --env-file 吗?

    我正在使用多个构建参数构建 Docker 映像 并且想知道是否可以将它们传递给docker build作为一个文件 以同样的方式 env file可以传递给docker run env 文件将被解析docker run自动并且变量在容器中可
  • 如何在Android中的线性布局周围显示阴影?

    如何显示线性布局的阴影 我想要白色圆形背景 线性布局周围有阴影 到目前为止我已经做到了
  • 着色器中包围体层次结构的遍历

    我正在使用 vulkan 计算着色器开发路径跟踪器 我实现了一棵树代表包围体层次结构 BVH 的想法是最大限度地减少需要执行光线相交测试的对象数量 1 简单的实施 我的第一个实现非常快 它遍历树到singleBVH 树的叶子 然而 射线可能
  • Android 设置 View.GONE 不会“释放”列表视图中的空间

    我有一个列表视图 其中包含一些可以标记为 完成 的项目 还有一个切换按钮显示 隐藏已完成的项目 但是 当我通过设置 setVisibility View GONE 隐藏项目时 列表中仍然留有空间 在列表视图中切换列表项应该不那么困难吧 将
  • Android IRC Office Hours 关于 Android 蓝牙 RSSI 的问题

    我对 Android 2 0 或 2 1 上的蓝牙 RSSI 功能有疑问 创建蓝牙连接时获取 RSSI 值很容易 但是如何重复获取已处于活动状态的连接的 RSSI 值呢 能够做到这一点非常重要 因为这可以让您确定蓝牙设备是否彼此靠近或远离
  • C# Selenium WebDriver FireFox 配置文件 - 使用带有身份验证的代理

    当您在下面的代码中设置代理服务器参数时 如果您的代理服务器需要身份验证 那么FireFox将带来身份验证对话框 基本上您无法自动填写它 那么有什么办法可以设置吗USERNAME and PASSWORD FirefoxProfile pro
  • ASP.Net MVC 授权操作过滤器

    我试图了解在 MVC Preview 4 中使用授权 Authorize 操作筛选器时错误处理的工作原理 我有一个看起来像这样的动作 Authorize Roles DOMAIN NOTAUTHORISED ROLE HandleError
  • 是否可以使用表单身份验证来保护 Web 服务的安全?

    我们正在寻求保护大量 ASP Net 2 0 asmx Web 服务的安全 将托管 Web 服务的表单已经经过身份验证 是否可以使用表单身份验证来保护 Web 服务的安全 实现这一目标的优点和缺点是什么以及其他可能的方法 我们当然不想在每个
  • 获取 MongoDB 数组字段中给定元素的索引

    想想这个 MongoDB 文档 id 123 food apple banana mango 问题 如何获得位置mango在食物中 查询应该返回2上面的内容 并且不要返回整个文档 请显示工作查询 从 MongoDB 3 4 版本开始我们可以
  • 从集合中删除文件

    我有一个目录 其中包含的文件要么属于构成 Qt 项目的集合 要么包含其他文件 也就是说 文件 A cxx ADriver cxx 和 A ui 都属于需要使用 Qt 选项进行编译的集合 然后我有一个非 qt 的文件 B cxx 然后C cx
  • 重载超类的函数

    C 标准中是否有某些内容阻止我重载超类的函数 从这对类开始 class A super class int x public void foo int y x y original definition class B public A d
  • 我应该对 jQuery 插件的缩小版本进行版本控制吗?

    假设我编写了一个 jQuery 插件并将其添加到我的存储库 在我的例子中为 Mercurial 这是一个单一文件 比如说jquery plugin js 我使用 BitBucket 来管理此存储库 其功能之一是下载页面 所以 我补充一下jq
  • 如何找出touchmove javascript事件的实际event.target?

    我正在尝试在我的 Web 应用程序中开发一个简单的拖放 UI 可以用鼠标或手指拖动项目 然后将其放入多个放置区域之一 当一个项目被拖过放置区域 但尚未释放 时 该区域会突出显示 标记安全着陆位置 这对于鼠标事件来说工作得很好 但我在 iPh
  • PyInstaller 文件大小非常大

    我使用 wxPython 制作了简单的代码编辑器 文件大小 Python 文件 为 1 3 KB 但是当我使用 PyInstaller 创建可执行文件时 我得到30 MB 文件 有没有办法减小文件大小 顺便说一句 我没有导入整个wx库 只有
  • Discord Bot 无法按名称或 ID 找到频道

    我正在尝试使用 DiscordJS 制作一个不和谐机器人 我想获取特定频道 const Discord require discord js var bot new Discord Client var myToken NDQ2OTQ1 v
  • Font-face 在 IE、otf 字体中不起作用

    我知道这个问题被问过多次 但在尝试后我无法让它工作 这是我用来导入自定义字体的简单 CSS 另外 我将其与引导程序一起使用 font face font family Montserrat Black src url Montserrat
  • 在成员函数内的 lambda 捕获列表中使用数据成员

    以下代码可以使用 gcc 4 5 1 进行编译 但不能使用 VS2010 SP1 进行编译 include
  • 退出 Smarty 以手动执行

    我面临的问题是 我不太确定如何在没有框架或模板引擎的情况下进行开发 我开始以这种方式编码 现在我想学习基础知识 我曾经使用过这种 MVC 模式 使用 Codeigniter 和 Smarty 作为模板引擎 我现在想做的是使用原始 php 而
  • 从远程 ssh 存储库进行 Git 克隆 - 在执行克隆命令之前更改远程网络上的机器

    我想将 git 存储库从我公司的服务器克隆到我的个人计算机 从 外部 访问这些服务器的唯一方法是通过 ssh 登录到 machine1 ssh email protected 不幸的是 git 没有安装在该特定机器上 所以像这样的 git