mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 03:34:15 +08:00
66 lines
3.0 KiB
Markdown
66 lines
3.0 KiB
Markdown
# 9.9 通过 git 打包和安装
|
||
|
||
## 9.9.1 安装到 GitHub
|
||
|
||
以上的方式对于本地包来说是可以的,但是我们如何打包代码到开发者圈子呢?那么我们需要一个云端的源码的版本控制系统,比如著名的 git。
|
||
|
||
在 Linux 和 OS X 的机器上 git 是默认安装的,在 windows 上你必须先自行安装,参见 http://help.github.com/win-set-up-git/。
|
||
|
||
这里将通过为第 9.8 节中的 uc 包创建一个 git 仓库作为演示
|
||
|
||
进入到 uc 包目录下并创建一个 git 仓库在里面: `git init`。
|
||
|
||
信息提示: Initialized empty git repository in .../uc
|
||
|
||
每一个 git 项目都需要一个对包进行描述的 README 文件,所以打开你的文本编辑器(gedit,notepad,LiteIde)添加一些说明进去。
|
||
|
||
然后添加所有文件到仓库:`git add README uc.go uc_test.go Makefile`
|
||
标记为第一个版本:`git commit -m "initial rivision"`
|
||
|
||
现在必须去登录 GitHub 网站: https://github.com
|
||
|
||
也许你还不能登录,你可以去 https://github.com/plans 注册一个开源项目的免费帐号。输入正确的帐号密码和有效的邮箱地址并进一步创建用户。然后你将获得一个 git 命令的列表。本地仓库的操作的命令已经完成。一个优秀的系统 http://help.github.com/ 在你遇到任何问题的时候将引导你。
|
||
|
||
在云端创建一个新的 uc 仓库;发布的指令为(NNNN 替代用户名):
|
||
|
||
```
|
||
git remote add orign git@github.com:NNNN/uc.git
|
||
git push -u origin master
|
||
```
|
||
|
||
操作完成后检查 GitHub 上的包页面: http://github.com/NNNN/uc
|
||
|
||
## 9.9.2 从 GitHub 安装
|
||
|
||
如果有人想你的远端项目到本地机器,打开终端并执行:`go install github.com/NNNN/uc`
|
||
|
||
NNNN 是你在 GitHub 上的用户名。
|
||
|
||
复制:
|
||
->uc.a包到目录$GOROOT/PKG/LINUX_AMD64/github.com
|
||
->源码到$GOROOT/src/pkg/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)将通过$GOROOT下的本地版本进行工作。
|
||
|
||
网站和版本控制系统:其他的选择
|
||
|
||
主要网站有(括号中为网站所使用的版本控制系统):
|
||
|
||
* bitbucket(hg)
|
||
* github(git)
|
||
* googlecode(hg/git/svn)
|
||
* launchpad(bzr)
|
||
|
||
版本控制系统可以选择你熟悉的或者本地使用的代码版本控制。Go 核心代码的仓库是使用 Mercurial(hg) 来控制的,所以它是一个最可能保证你可以得到开发者项目中最好的软件。Git 也很出名,同样也适用。如果你从未使用过的版本控制,这些网站有一些很好的帮助并且你可以通过在谷歌搜索"{name} tutorial"name为你想要使用的版本控制系统得到许多很好的教程。
|
||
|
||
## 链接
|
||
|
||
- [目录](directory.md)
|
||
- 上一节:[自定义包的目录结构、go install 和 go test](09.8.md)
|
||
- 下一节:[Go 的外部包和项目](09.10.md)
|