Fork me on GitHub
从googlecode向Github迁移代码

从googlecode向Github迁移代码

 

作者:Tony Qu

之前一直用googlecode的SVN做控制版本,没想到最近google被屏蔽的越来越频繁,连googlecode也难逃一劫,虽然在这里我不想发表反动言论,但是一个开源网站ZF都封,我就不知道目的何在,这就是所谓的鼓励开源软件产业的发展?!

既然改变不了被封的事实,我只能考虑搬家,最近发觉github很火,决定尝试把代码搬过去,一开始我已经在考虑放弃之前SVN的修改记录,没想到github尽然支持直接从SVN导入所有代码及提交记录,这真的要感谢svn2git的作者,但有一个条件,要导入的SVN必须用于开源项目,毕竟github免费版也只支持开源项目(闭源项目的托管是收费的)。

下面来传授下导入步骤:

a. 进入http://svn2github.com/

image

b. 输入你要导入的svn网址,比如https://npoi.googlecode.com/svn/trunk

c. 输入一个github名字,比如npoi, 注意,这里导入的路径不是你个人的github路径,而是svn2git/<name>,这也是为何这个工具要求项目开源的原因,因为它就是要利用github的Fork功能。

d. 按Make a mirror按钮(别多按,它是ajax实现的),接下来稍等片刻,大概几十秒吧,你会看到last update提示,这表示导入成功了。

image

这时你就可以去svn2github/npoi看导入的代码了,为了让大家有更直观的感受,我直接截了Network选项卡的图给大家,看到吗?所有的以前googlecode的提交都在,这样就不怕丢失代码修改记录了。

image

e. 然后我们只要点Fork,就能把这个项目直接搬到你自己的github路径下面了,如tonyqus/npoi。

到这里,我们完成最基本操作——将你的项目从googlecode搬到github来。那么万一googlecode还有新的更新,能同步过来吗?当然能,版本合并可是github的强项啊。

首先,还是进入http://svn2github.com/, 和之前的操作全部一样,当你按Make a mirror按钮之后,如果成功了,你会发现Last update会有变化。为确保同步是成功的,你可以去Network选项卡看看是否有新的commit进来。

接下来,我们要借助Git-shell,命令如下

a. 定义upstream

git remote add upstream git://github.com/svn2github/npoi.git

b. 获取upstream的最新版

git fetch upstream

c. 进入本地master路径

git checkout master

如果是通过windows版github客户端进入shell,此部可忽略,因为默认进入shell就会在master上,如图所示

image

d. 将upstream的更改在当前branch上重放

git rebase upstream/master

e. 将改动同步到github

git push –f origin master

好了,到此你完成了从googlecode到github的更新。

 

参考:https://github.com/rilwis/meta-box/wiki/X.01.-Keep-your-Forks-in-sync


版权声明:本文由作者Tony Qu原创, 未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。
 
分类: 其他
posted on 2013-01-05 14:09  HackerVirus  阅读(740)  评论(0编辑  收藏  举报