从sourceforge迁移到github

现在最火的版本控制软件是什么,当然是git。git大有取代svn之势,就像svn当前取代cvs一样。作为老牌代码托管网站sourceforge面临github的竞争,也不得不调整战略,在原先的基础上增加了git和Mercurial 等软件的支持,但是却没有github或者bitbucket那样提供fork和pull request功能。要知道对于一个开源作品来说fork可以方便的将源码备份到自己的账号所辖版本库中,而pull request功能方便将自己的代码更改提交给原作者,待原作者审核通过后,自己就为开源项目的发展贡献了一份绵薄之力。但是,sourceforge一直固执于自己的模式,不愿意添加这两项功能,这对于在sourceforge上开源源码的人就只能干看着别人使用github的便捷功能吗?

答案当然是否定的,git提供了由svn转化为git的功能。而且转化出来的版本库还带有之前svn的更新日志!废话少说,举个例子。

1.安装git bash

要想在windows下使用git,需要安装Git Bash,可以从http://git-scm.com/downloads页面中选择windows平台进行下载。下载完成之后,运行安装,显示安装流程如下:

图1.1

安装的时候,将git bash添加到右键菜单。


图1.2

将git命令添加到系统的环境变量中。


图1.3

这个地方选择第三项。

安装成功后在桌面上看到这个快捷方式,双击打开,就你能看到git的命令行模式。不过由于刚才讲git添加到右键菜单了,你可以直接在文件夹上右击。

2.svn到git迁移

新建一个文件夹,在其上右击,然后选择git bash,输入如下命令:

git svn clone https://yunnysunny.svn.sourceforge.net/svnroot/array2xml/ array2xml

会给出如下提示:


图2.1

在提示是否信任证书时,输入p即可。

这时候,我们就在刚才新建的文件夹下生成了一个array2xml的文件夹。里面就是git版本库,并且含有所有当初在svn上提交的版本和日志记录。

3.github账号创建

去github(https://github.com/signup/free)上注册一个账号,注册完成后最后进入注册用的邮箱中进行激活。然后点击账号设置,,进入github后台。在后台左侧菜单中有一个ssh key选项,如下图所示:


图5

这个地方其实是要输入公钥信息,在刚才打开的命令行中输入如下命令:

ssh-keygen -t rsa -C "[email protected]"

其中[email protected]是你注册时用的用户名。其中会要求你输入密码。


图3.1

打开C:\Users\sunny\.ssh\id_rsa.pub,全选复制器文件内容,在图5所示的菜单中,点击SSH Keys输入key的内容
图3.2
在进行文件操作之前,先设置一下git的全局信息,这个对于提交到github上的源码很管用,它会在提交信息上直接产生你git主页的连接。
图3.3
这个命令只在初次安装git的时候设置一遍,就可以了。

4.git上传到github

点击按钮,在github上创建一个仓库。创建完成后,会给出git仓库地址:
图4.1
在刚才的命令行窗口中,cd到array2xml目录,输入如下命令:
 git remote add upstream https://github.com/yunnysunny/array2xml.git
图4.2
其中upstream是我们给远程仓库起的别名。
接着运行:
git pull upstream master
将远程仓库的文件改动下载到本地
图4.3
最后运行
git push upstream
将本地的改动更新到远程仓库
图4.4
这时候去地址https://github.com/yunnysunny/array2xml 上看,刚才的文件已经更新上去了。
图4.5

5.git文件操作

当你修改了文件之后,运行git status命令来查看当前改动的文件。
图5.1
如上图所示,修改了一个文件,增加了两个文件。接下来演示一下将test.php的改动添加到本地版本库:
图5.2
如上图所示,分别运行git add test.php 和 git commit -m “你的注释信息”,就能将更改提交到本地。接着运行图4.4的命令,就可将本地的更改更新到远程的仓库中。

6.扩展

上面就讲完了从sourceforge迁移到github的整个过程,如果你仅仅是将本地的svn服务器迁移到git服务器上,那么在图2.1中的命令中换成
git svn clone svn_path local_git_store_name
其中svn_path就是你本地的原来svn服务器中中某个版本库的地址,local_store_name就是你给新建的git本地库起的名字,这样就会将svn以git库的形式导入到本地硬盘上去。剩下的就是按照第4部分的内容来操作了,只不过将github的地址换成你本地git服务器的地址即可。
另外git也有图形化界面工具,比如tortoisegit,类似tortoisesvn;在eclipse中有egit插件,类似于eclipse中的svn插件。这里就不再具体讲解了。
 
   

猜你喜欢

转载自blog.csdn.net/yunnysunny/article/details/8072571