以上的方式对于本地包来说是可以的,但是我们如何打包代码到开发者圈子呢?那么我们需要一个云端的源码的版本控制系统,比如著名的 Git。
在 Linux 和 OS X 的机器上 Git 是默认安装的,在 Windows 上你必须先自行安装,参见 GitHub 帮助页面。
这里将通过为第 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 网站。
如果您还没有账号,可以去注册一个开源项目的免费帐号。输入正确的帐号密码和有效的邮箱地址并进一步创建用户。然后你将获得一个 Git 命令的列表。本地仓库的操作命令已经完成。一个优秀的系统在你遇到任何问题的时候将 引导你。
在云端创建一个新的 uc 仓库;发布的指令为(NNNN
替代用户名):
git remote add origin git@github.com:NNNN/uc.git
git push -u origin master
操作完成后检查 GitHub 上的包页面: http://github.com/NNNN/uc
。
如果有人想安装您的远端项目到本地机器,打开终端并执行(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为你想要使用的版本控制系统),得到许多很好的教程。