使用私有git存储库时go工作区的结构

时间:2014-05-22 12:09:51

标签: go

当你不使用github时,我一直试图弄清楚代码/工作区的标准文件夹布局/结构。

我可以看到go get在获取github项目时是如何工作的,但假设我自己的git项目不具有{github.com}/{username}/{projectname}引用的go get结构以及如何在磁盘上构建你做go get

使用自己的git私有存储库时,您应该使用哪种布局和git get网址?

3 个答案:

答案 0 :(得分:6)

包本身不包含存储位置的参考。你只有:

package mypackage

因此,您可以将自己的本地版本放在自己的结构中,正如Volker在评论中指出的那样。这是您在自己的项目中使用的导入路径:

import "my/custom/path/mypackage"

然后你可以打开它并将mypackage放到GitHub上。这将允许其他人使用go get命令获取它,但他们将使用github.com导入:

import "github.com/myuser/mypackage"

除非你想要导入导入my/custom/path/mypackage 的开源软件包,否则这样做非常好。在这种情况下,您应该考虑重构路径,以便使用与程序包用户相同的github导入路径。

答案 1 :(得分:3)

来自go help importpath

  

对于托管在其他服务器上的代码,导入路径可以是合格的   使用版本控制类型,或go工具可以动态获取   https / http上的导入路径,并发现代码所在的位置   来自HTML中的标签。

     

声明代码位置,表单的导入路径

     

repository.vcs /路径

     

使用指定包含或不包含.vcs后缀的给定存储库   命名版本控制系统,然后是里面的路径   库。支持的版本控制系统是:

     

Bazaar .bzr Git .git Mercurial .hg Subversion .svn

然后我相信您可以使用GitLabGoGits设置自己的git服务器,然后您的导入路径将成为您的服务器域。

但是如果你有一个带github或bitbucket的私人仓库,那么你的包就可以了。只需运行正常的“go get”,您就会要求输入密码。

答案 2 :(得分:1)

对于未知的repo托管网站,go get首先获取HTTP / HTTPS网址并检查其是否有链接到git / hg / bzr repo的元标记。

请参阅"Remote import paths"