> For the complete documentation index, see [llms.txt](https://ryanyang.gitbook.io/the-way-to-go-zh-cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ryanyang.gitbook.io/the-way-to-go-zh-cn/di-er-bu-fen-yu-yan-de-he-xin-jie-gou-yu-ji-shu/09.0/09.9.md).

# 通过 Git 打包和安装

## 9.9.1 安装到 GitHub

以上的方式对于本地包来说是可以的，但是我们如何打包代码到开发者圈子呢？那么我们需要一个云端的源码的版本控制系统，比如著名的 Git。

在 Linux 和 OS X 的机器上 Git 是默认安装的，在 Windows 上你必须先自行安装，参见 [GitHub 帮助页面](http://help.github.com/win-set-up-git/)。

这里将通过为第 9.8 节中的 uc 包创建一个 git 仓库作为演示

进入到 uc 包目录下并创建一个 Git 仓库在里面: `git init`。

信息提示: `Initialized empty git repository in $PWD/uc`。

每一个 Git 项目都需要一个对包进行描述的 README.md 文件，所以需要打开你的文本编辑器（gedit、notepad 或 LiteIde）并添加一些说明进去。

* 添加所有文件到仓库：`git add README.md uc.go uc_test.go Makefile`。
* 标记为第一个版本：`git commit -m "initial rivision"`。

现在必须登录 [GitHub 网站](https://github.com)。

如果您还没有账号，可以去注册一个开源项目的免费帐号。输入正确的帐号密码和有效的邮箱地址并进一步创建用户。然后你将获得一个 Git 命令的列表。本地仓库的操作命令已经完成。一个优秀的系统在你遇到任何问题的时候将 [引导你](http://help.github.com/)。

在云端创建一个新的 uc 仓库;发布的指令为(`NNNN` 替代用户名):

```
git remote add origin git@github.com:NNNN/uc.git  
git push -u origin master
```

操作完成后检查 GitHub 上的包页面: `http://github.com/NNNN/uc`。

## 9.9.2 从 GitHub 安装

如果有人想安装您的远端项目到本地机器，打开终端并执行（NNNN 是你在 GitHub 上的用户名）：`go get github.com/NNNN/uc`。

这样现在这台机器上的其他 Go 应用程序也可以通过导入路径：`"github.com/NNNN/uc"` 代替 `"./uc/uc"` 来使用。

也可以将其缩写为：`import uc "github.com/NNNN/uc"`。

然后修改 Makefile: 将 `TARG=uc` 替换为 `TARG=github.com/NNNN/uc`。

Gomake（和 go install）将通过 `$GOPATH` 下的本地版本进行工作。

网站和版本控制系统的其他的选择(括号中为网站所使用的版本控制系统)：

* BitBucket(hg/Git)
* GitHub(Git)
* Google Code(hg/Git/svn)
* Launchpad(bzr)

版本控制系统可以选择你熟悉的或者本地使用的代码版本控制。Go 核心代码的仓库是使用 Mercurial(hg) 来控制的，所以它是一个最可能保证你可以得到开发者项目中最好的软件。Git 也很出名，同样也适用。如果你从未使用过版本控制，这些网站有一些很好的帮助并且你可以通过在谷歌搜索 "{name} tutorial"，(name为你想要使用的版本控制系统),得到许多很好的教程。

## 链接

* [目录](https://github.com/yangchuansheng/the-way-to-go_ZH_CN/tree/f30ab7d8c58f85840a0afb548024b93642b518d5/eBook/directory.md)
* 上一节：[自定义包的目录结构、go install 和 go test](/the-way-to-go-zh-cn/di-er-bu-fen-yu-yan-de-he-xin-jie-gou-yu-ji-shu/09.0/09.8.md)
* 下一节：[Go 的外部包和项目](/the-way-to-go-zh-cn/di-er-bu-fen-yu-yan-de-he-xin-jie-gou-yu-ji-shu/09.0/09.10.md)
