对于带有go1分支的包,go get -u失败

问题描述 投票:-4回答:1

我正在分发一个go包,需要大量生成的文件,我不想包含在我的git存储库的master分支中。我希望人们能够用go get安装我的软件。由于go get没有运行go generate,我的解决方案是将所有生成的文件都放在go1分支中,这是master之外的一个提交,但也包括所有生成的文件。我还可以在go1分支中添加第二个假父提交,这样无论人们获取go1,它总是快速合并。只要go1保持原始状态,我不在乎master分支有多难看。

这项技术第一次运作很好。不幸的是,go get -u的每次后续调用都失败了,即使go1分支根本没有改变,因为go get将离开已检出的存储库处于分离的HEAD状态而不是go1分支。我可以自己解决这个问题,手动深入我的gopath运行git checkout go1,这将创建一个本地go1分支跟踪origin/go1,但这是非常烦人的,必须指导其他人做。那时我最好只打击gopath系统并告诉人们使用Makefile构建软件。

关于如何解决这个问题或者告诉别人的想法?我真的不想做的一件事是运行git symbolic-ref来改变服务器上的HEAD,因为master确实需要成为所有开发人员的默认分支。无论如何,改变服务器上的HEAD不应该是必要的,因为go get是选择获取go1分支的那个,所以为什么不创建一个从go1拉出的本地origin/go1分支?

go
1个回答
0
投票

事实证明这只是cmd / go中的一个错误。这是该问题的链接:

https://github.com/golang/go/issues/27526

如果在1.12中修复了这个bug,那么我想要做的就是工作。

© www.soinside.com 2019 - 2024. All rights reserved.