Go语言系列:(2)go get 命令介绍

Go语言的代码被托管于 Github.com 网站,该网站是基于 Git 代码管理工具的,不少有名的项目都在该网站托管代码。其余相似的托管网站还有 code.google.com、bitbucket.org 等。git

这些网站的项目包路径都有一个共同的标准,参见下图所示。github

 

 

go get 命令能够借助代码管理工具经过远程拉取或更新代码包及其依赖包,并自动完成编译和安装。整个过程就像安装一个 App 同样简单。安全

这个命令能够动态获取远程代码包,目前支持的有 BitBucket、GitHub、Google Code 和 Launchpad。在使用 go get 命令前,须要安装与远程包匹配的代码管理工具,如 Git、SVN、HG 等,参数中须要提供一个包名。工具


这个命令在内部实际上分红了两步操做:第一步是下载源码包,第二步是执行 go install。下载源码包的 go 工具会自动根据不一样的域名调用不一样的源码工具,对应关系以下:测试

  • BitBucket (Mercurial Git)
  • GitHub (Git)
  • Google Code Project Hosting (Git, Mercurial, Subversion)
  • Launchpad (Bazaar)

参数介绍: 网站

-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 打印出整个过程使用了哪些命令

 

  • go get 下载的包保存在哪里呢?通常他会保存在这个目录:$GOPATH/src , 若你有多个GOPATH(工做区),则会保存在第一个工做区中。获取前,请确保 GOPATH 已经设置。Go 1.8 版本以后,GOPATH 默认在用户目录的 go 文件夹下。
  • go get 检出或更新代码包以后,它会寻找与本地已安装Go语言的版本号相对应的标签(tag)或分支(branch)。好比,本机安装Go语言的版本是1.x,那么go get命令会在该代码包的远程仓库中寻找名为“go1”的标签或者分支。若是找到指定的标签或者分支,则将本地代码包的版本切换到此标签或者分支。若是没有找到指定的标签或者分支,则将本地代码包的版本切换到主干的最新版本。
  • go get 更新代码包,更行代码包后,所引用此包的其余代码块使用时都会更新。可是就是不会更新vendor(govendor 代码包管理工具生成的文件夹)目录中的代码。
相关文章
相关标签/搜索