我正在分发一个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
提取的分支?
答案 0 :(得分:0)