Git 内网穿透,使用非标准接口 clone 仓库,更新子模块

本文最后更新于:2022年8月10日 上午

Git 是优秀的版本管理工具,默认使用ssh协议的22端口,本文记录当需要使用非默认端口时如何clone 仓库并更新子模块。

操作方法

  • 假设我们的 git 仓库服务器 IP 为 192.168.10.30
  • 默认git clone 方法为:
1
git clone git@192.168.10.30:project/xx.git
  • 当ssh端口更改为其他端口,以3721为例,那么clone该仓库的命令为:
1
git clone ssh://git@192.168.10.30:3721/project/xx.git

内网穿透

  • 可以将本地 gitlab 仓库服务器的 22 端口经过内网穿透(如frp,花生壳)映射到其他IP的某个端口上

也就实现了外网访问本地gitlab仓库

子模块更新

这种穿透方式会导致子模块难以更新,因为在git 的.gitmodule 文件中记录的是本地子模块的git仓库地址

  • 此时我们如果一定有穿透更新子模块的需求的话需要修改当前仓库的.gitmodule 文件

  • 将其中的原始地址改为新的地址,以上述两个命令为例

  • .gitmodule 中的所有 git@192.168.10.30: 改为ssh://git@192.168.10.30:3721/,即可远程穿透更新子模块

参考资料


Git 内网穿透,使用非标准接口 clone 仓库,更新子模块
https://www.zywvvd.com/notes/tools/git/git-port/git-port/
作者
Yiwei Zhang
发布于
2021年12月11日
许可协议