有两个问题请教下大家:
1、go mod 会自动下载最新 tag 的代码,如果没有会自动引入最新的 master 提交,这样没问题。但是有 tag 的情况下只会引入 tag,没法引用最新的代码(如果 B 有改动必须打 Tag ?)
2、上面的问题可以用 replace 的方案解决,但是如果团队开发,大家的 gopath 都不一致,go mod 文件会有多份,如何解决?
谢谢大家
replace github.com/b => ../b
go get -u github.com/b@branch(或者是commit)
,go.mod会自动生成 github.com/[email protected] 1
janxin 2019-09-16 15:47:48 +08:00 via iPhone
1. 可以指定 git commit
2. 团队开发在一个机器下面?多份怎么理解呢? |
2
mcfog 2019-09-16 15:50:28 +08:00
1. go get REPO_URL@master
2. replace 到相对路径或者另一个 URL 都可以 |
3
Immortal OP @janxin
1、指定 master 后也会自动更新到最后一个 tag ( tag 代码可能旧于 master,但是他还是会优先 tag ) 2、不是的,是指大家各自配置的 GOPATH,或者说项目在电脑里的路径不一致,我想绝对路径会不一样。后来发现相对路径也行。。最后以相对路径解决了 谢谢 |
5
janxin 2019-09-16 16:39:41 +08:00 via iPhone
@Immortal 使用 git commit checksun 不是 master,另外你 A 仓库是不是没有 go.mod
|
6
Vegetable 2019-09-16 16:40:35 +08:00
|
7
Hellert 2019-09-16 16:56:19 +08:00
go get -u github.com/xx/xxxx@master 应该就可以,运行后自动更新 go.mod ,版本号应该是 v0.0.0-date-hash 的形式。
|
8
Immortal OP @janxin
都有 go.mod ,感觉楼下说的手动 go get 下私有仓库,指定 branch 下载,触发 go mod 自己维护会变成 v0.0.0 xxxxxx 的形式应该是可行的 |
10
JamesMackerel 2019-09-17 00:24:23 +08:00 via iPhone
因为这个问题,我滚回了 govendor。
|
11
Immortal OP @JamesMackerel 可以尝试下楼上大家说的解决方案哦
|
12
lazyfighter 2019-09-17 14:02:49 +08:00
被说蒙蔽了,go mod 不是有版本吗,大家的 gopath 不一样没啥子问题啊,go mod 将 package 缓存在本地,而且有版本,版本定义好不就行吗
|