背景
在我的公司,我们使用 Bit Bucket 来托管我们的 git 存储库。到服务器的所有流量都流经一个自定义的非标准端口。从我们的 repos 克隆看起来像git clone ssh://git@stash.company.com:9999/repo/path/name.git
.
问题
我想创建托管在此服务器上并由 管理的 Go 模块go mod
,但是,流量必须流经端口的事实9999
使得这非常困难。这是因为go mod
在标准端口上运行,并且似乎没有提供为不同模块定制端口的方法。
我的问题
是否可以使用go mod
非标准端口来管理托管在私有 git 服务器上的 Go 模块?
尝试的解决方案
贩卖
这似乎是最接近提供解决方案的方式。首先go mod vendor
是想要使用这些 Go 模块的 Go 应用程序,然后是目录git submodule
中的 Go 模块。vendor/
在需要更新或添加模块的情况下,这可以完美运行。go mod tidy
将一直无法下载或更新其他 Go 模块,因为它无法访问自定义 Go 模块的“git URL”。即使-e
设置了标志。
编辑.gitconfig
编辑.gitconfig
以将不带端口的 URL 替换为带端口的 URL 是一种可行的解决方案,但这是一个非常肮脏的 hack。首先,必须对任何新模块以及每个单独的开发人员进行这些编辑。其次,这可能会在处理这些存储库时阻止其他 git 进程。