如何在拉取时自动更改客户端上的 git 存储库域?

How to automatic change git repository domain on the clients when pull?

我在域上自托管 Gitlab 安装。我需要将 Gitlab 实例移动到不同的域。几乎所有其他 Gitlab 数据都会被保存并迁移到新位置。

是否有解决方案可以在任何 git 客户端从旧位置执行下一次拉取时自动且无处理地更改 git origin <URL>?可能是服务器控制的挂钩。

据我所知,您无法从 git 服务器更改“客户端”中的存储库 url。为此,您在“客户端”上有 运行 某种类型的脚本,但解决方案将取决于 OS 和连接类型(https ou ssh)。

一个选项是保持旧的 gitlab 在线并创建一个 pre-receive 钩子来拒绝任何推送并发回如下消息:

   Hey dude! Your project is not here anymore, please access http://newdomain or
   run git `remote set-url http://newdomain/project.git` 

更多关于gitlab server-side hooks