go命令go get github.com/cloudnativego/gogo-service/service
先失败,但第二次失败。
整个事件序列:
[23:47]$ go get github.com/cloudnativego/gogo-service/service
# cd /Users/../github.com/cloudnativego/gogo-service; git submodule update --init --recursive
No submodule mapping found in .gitmodules for path 'vendor/github.com/cloudfoundry-community/go-cfenv'
package github.com/cloudnativego/gogo-service/service: exit status 1
[23:48]$ go get github.com/cloudnativego/gogo-service/service
[23:49]$ #worked
[23:49]$ ll vendor/github.com/
total 0
drwxr-xr-x 3 _ staff 102 Nov 2 22:48 .
drwxr-xr-x 3 _ staff 102 Nov 2 22:48 ..
drwxr-xr-x 3 _ staff 102 Nov 2 22:48 codegangsta
[23:49]$
这是git问题还是go get
片状或预期的行为?
答案 0 :(得分:2)
这是由有问题的存储库使用外部库(在供应商目录中)作为子模块引起的,而不是静态销售,但是没有在.gitmodules文件中配置这些子模块(实际上这些子模块实际上似乎完全不存在) )。 go get
和子模块存在一个已知问题:
您可以在相关存储库中提交问题,并建议他们转移到静态销售模型(或使用govendor' fetch
实用程序或类似工具,忽略/vendor/*/
模式)。它们不是第一个遇到此问题的回购:
即使github本身似乎也建议不再使用子模块:
https://github.com/blog/2104-working-with-submodules
在将存储库添加为子模块之前,请先检查您是否有更好的替代方案。 Git子模块在简单的情况下运行良好,但是现在通常有更好的工具可用于管理依赖项,而不是Git子模块可以提供的。