[TOC]

0x00 Go工具命令

get 命令

该命令可以借助代码管理工具通过远程拉取或更新代码包及其依赖包,并自动完成编译和安装,整个过程类似安装App一样;

目前支持的动态获取远程代码包的有BitBucket、GitHub、Google Code 和 Launchpad,所以为了 go get 命令能正常工作您需要安装与远程包仓库匹配的代码管理工具,如 Git、SVN、HG 等,由于它自动根据不同的域名调用不同的源码工具,对应关系如下:

1
2
3
4
BitBucket (Mercurial Git)
GitHub (Git)
Google Code Project Hosting (Git, Mercurial, Subversion)
Launchpad (Bazaar)

该命令内部实际上分成了两步操作:

  • 第一步是下载源码包假设远程包的路径格式github.com/golang/go
    1
    2
    3
    4
    #比如github网站的项目包路径都有一个共同的标准
    github.com - 网站域名:表示代码托管的网站,类似于电子邮件 @ 后面的服务器地址。
    golang - 作者或机构: 表明这个项目的归属,一般为网站的用户名,如果需要找到这个作者下的所有项目,可以直接在网站上通过搜索“域名/作者”进行查看。( 似于电子邮件 @ 前面的部分。)
    go - 项目名称 :每个网站下的作者或机构可能会同时拥有很多的项目,图中标示的部分表示项目名称。
  • 第二步是执行 go instal

参数介绍:

1
2
3
4
5
6
7
8
$go get [options]
* -d 只下载不安装
* -f 只有在你包含了 -u 参数的时候才有效,不让 -u 去验证 import 中已经获取了的包(`对于本地 fork 的包特别有用`)
* -fix 在获取源码之后先运行 fix,然后再去做其他的事情
* -t 同时也下载需要为运行测试所需要的包
* -u 下载丢失的包,但不会更新已经存在的包
* -v 显示操作流程的日志及信息,方便检查错误
* -insecure 允许使用不安全的 HTTP 方式进行下载操作

基础实例:

1
2
#例如想获取 go 的源码并编译,然后他会编译安装到 GOPATH 目录中
$ go get github.com/davyxu/tabtoy