go语言的代码被托管于 github.com 网站,该网站是基于 git 代码管理工具的,很多有名的项目都在该网站托管代码。其他类似的托管网站还有 code.google.com、bitbucket.org 等。
这些网站的项目包路径都有一个共同的标准,参见下图所示。
go get 命令可以借助代码管理工具通过远程拉取或更新代码包及其依赖包,并自动完成编译和安装。整个过程就像安装一个 app 一样简单。
这个命令可以动态获取远程代码包,目前支持的有 bitbucket、github、google code 和 launchpad。在使用 go get 命令前,需要安装与远程包匹配的代码管理工具,如 git、svn、hg 等,参数中需要提供一个包名。
这个命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是执行 go install。下载源码包的 go 工具会自动根据不同的域名调用不同的源码工具,对应关系如下:
参数介绍:
-u | 用于下载指定的路径包及其依赖包,默认情况下,不会下载本地已经存在的,只会下载本地不存在的代码包。就是口中常说的更新包 比如:go get -u github.com/jinzhu/gorm。会把最新的 gorm 包下载到你本地 |
-d | 此命令仅仅是下载路径包,而不会进行安装。即不会执行 go install 命令 |
-t | 让命令程序同时下载并安装指定的代码包中的测试源码文件中依赖的代码包 |
-fix | 让命令程序在下载代码包后先执行修正动作,而后再进行编译和安装。比如,我的代码是用1.7 开发的,现在go 版本已经是1.13 了,有些包已经发生了变化,那么我们在使用go get命令的时候可以加入-fix标记。这个标记的作用是在检出代码包之后,先对该代码包中不符合go语言1.7版本的语言规范的语法进行修正,然后再下载它的依赖包,最后再对它们进行编译和安装。 |
-insecure | 允许命令程序使用非安全的scheme(如http)去下载指定的代码包。如果你用的代码仓库(如公司内部的gitlab)没有https支持,可以添加此标记。请在确定安全的情况下使用它。(记得 使用工具 git 时,有个版本就是 http 升级为了https) |
-v | 打印出那些下载的代码包的名字 |
-f | 仅在使用-u标记时才有效。该标记会让命令程序忽略掉对已下载代码包的导入路径的检查。如果下载并安装的代码包所属的项目是你从别人那里fork过来的,那么这样做就尤为重要了 |
-x | 打印出整个过程使用了哪些命令 |
如对本文有疑问, 点击进行留言回复!!
网友评论