只要我在master
分支上,此代码就可以工作:
main.go:
package main
import (
datemodlocal "192.168.0.12/gitrepo/go-module-test-dateutil.git"
stringmodlocal "192.168.0.12/gitrepo/go-module-test-stringutil.git"
"fmt"
"github.com/dwschulze/go-module-test-dateutilmod"
"github.com/dwschulze/go-module-test-stringutilmod"
)
func main() {
fmt.Println("github: " + stringmod.ToUpperCase("test"))
fmt.Println("github: " + datemod.GetTime().String())
fmt.Println("local: " + stringmodlocal.ToUpperCase("test"))
fmt.Println("local: " + datemodlocal.GetTime().String())
}
去.mod:
module module-driver
require (
192.168.0.12/gitrepo/go-module-test-dateutil.git v0.0.1
192.168.0.12/gitrepo/go-module-test-stringutil.git v0.0.1
github.com/dwschulze/go-module-test-dateutilmod v0.0.1
github.com/dwschulze/go-module-test-stringutilmod v0.0.1
)
go 1.15
我需要使用分支dev2
进行开发。godocs 没有显示需要对导入路径或go.mod
. 如果我将导入语句更改为:
datemodlocal "192.168.0.12/gitrepo/go-module-test-dateutil.git@dev2"
我得到:
$ go run main.go
package command-line-arguments
imports 192.168.0.12/gitrepo/go-module-test-dateutil.git@dev2: can only use path@version syntax with go get
如果我移动@dev2
到 require 语句go.mod
192.168.0.12/gitrepo/go-module-test-dateutil.git@dev2 v0.0.1
我明白了
$ go run main.go
go: 192.168.0.12/gitrepo/go-module-test-dateutil.git@dev2@v0.0.1: unrecognized import path "192.168.0.12/gitrepo/go-module-test-dateutil.git@dev2": https fetch: Get "https://192.168.0.12/gitrepo/go-module-test-dateutil.git@dev2?go-get=1": dial tcp 192.168.0.12:443: connect: connection refused
那条错误消息说https
这很奇怪,因为~/.gitconfig
我有
[url "dean@192.168.0.12:"] insteadOf = https://192.168.0.12/
设置GOPRIVATE
没有效果。如果我将它们@dev2
放在两个地方,我会收到相同的错误消息。
godocs 没有显示任何工作.go
和go.mod
文件必须包含的示例,才能在master
. 我认为模块必须在任何分支上工作,因为开发通常是在master
.
有没有人有一个.go
文件的工作示例和一个go.mod
在 master 以外的分支上工作的示例?