创建 Git 镜像
作者: | Steve Losh |
---|
日期: | 2009-11-09 |
---|
你选择了 Mercurial,但还是有很多人更喜欢 git 。让他们在对你的项目作出贡献时更方便些。
在所有的像 Mercurial 一样的分布式版本控制系统中来说, git 很可能是最受欢迎的。如果你有项目使用的是 Mercurial,那你可以方便且快捷的创建一个你的项目的 git 镜像,这样的话 git 用户便能对其作出贡献了!
安装 hg-git
首先,你需要下载 hg-git 插件:
easy_install dulwich
hg clone http://bitbucket.org/durin42/hg-git/
现在 编辑你的~/.hgrc文件 包含以下内容:
[extensions]
hggit = /path/to/hg-git
在 GitHub 上创建一个库
现在你拥有了一个 GitHub 帐号,你需要通过 “New Repository” 按钮来创建一个代码库。
一但你创建了一个新库,你将会看到一个与下面类似的页面:
看到那个 git@github.com:username/project.git
的 URL 没?记住它,因为你在 push 你的镜像时你将会用到它。
Push 你的项目
现在你已经装好了 hg-git
并且为你的项目在 GitHub 上创建好了一个代码库,你还需要将你的 Mercurial 库 push 到 GitHub 上去。首先,通过编辑你项目里的 .hg/hgrc
来将 git 的 URL 添加到你的 Mercurial 代码库里去:
[paths]
git = git+ssh://git@github.com/username/project.git
Note
重要注意事项: 你需要把 github.com
后面的 :
替换为一个 /
(正斜杠)。这是必须的,因为 Mercruial 就是这样来操作代码库的路径的!
当然,你还需要将 username
和 project
替换为适当的值。
现在你仅需要向 git
路径 push 以创建你的镜像了:
hg push git
这将会耗费一些时间,尤其当你的代码库比较大时。一但它结束了的话你便在 http://github.com/username/project/ 上拥有了一个能100%正常运转的 git 镜像了。 Git 用户便能够通过运行 git clone git://github.com/username/project.git
来克隆你的项目了并且可能连你使用的是 Mercurial 都不会意识到。
接受贡献
创建了一个镜像以提供给 git 用户克隆干的非常漂亮了,但最终总会有人在 GitHub 上向你发送 pull 请求的(如果你的项目很吸引人的话)。
hg-git
简单的解决了来自 git 用户的贡献。首先,添加贡献者的 fork 到你的项目路径:
[paths]
git = git+ssh://git@github.com/username/project.git
contributor = git+ssh://git@github.com/contributor_username/project.git
Note
再次, 确认你将 github.com
后面的 :
替换为了 /
(正斜杠)!
接下来 pull 他们的变更到你的 Mercurial 代码库中:
hg pull contributor
你可以使用 graphlog 来观察你的代码库在这时看起来是怎么样一个状况(还有是否需要合并)。
假如你需要(或是想)合并的话,合并然后将他们的贡献 push 到你的 Mercurial 主库和你的 git 镜像上去:
hg push
hg push git
这里包含了所有的基础!如果你拥有一个大量分支的工作流的话事情可能会变得复杂,不过至少这个贴士在你接受来自 git 用户的 patch 时会帮到你。