2009年4月4日星期六

Windows下Eclipse Git版本控制的使用


工作准备:

  1. Eclipse3.4.2

  2. Git on Windows (用于生成public SSH Key等)

下载地址:http://msysgit.googlecode.com/files/Git-1.6.2.1-preview20090322.exe

  1. Eclispe Git Plugin

插件Update Site: http://www.jgit.org/update-site


安装

假设您已安装了Eclipse

安装Git on Windows,http://msysgit.googlecode.com/files/Git-1.6.2.1-preview20090322.exe,

安装Eclipse Git插件:打开Eclipse,Help—Software Updated…--Add Site…--输入http://www.jgit.org/update-site,接下来选择需要安装的版本,本人选择的是版本号最新的一个版本,安装完成重启Eclipse


设置

首先到GitHub(提供免费的Git托管)上注册帐号,并创建一个Repository,假设叫test

我们需要在Repository新建一个项目,至于为什么不能在空白的Repository的时候用Eclipse去新建一个Project,然后用Team-Share这样的方式去上传Project,可能是一个Bug,反正我试过是不行的,可能因为这个Plugin还不是很成熟,开始—所有程序—Git—打开Git GUI(请先在编辑—选项下,输入自己的名字和Email)—创建新的版本库—选择一个新的目录E:/GitRepository,这个时候就在本地新建一个版本库,可以先用Eclipse新建一个TestJava Project,然后去EclipseWorkspace下把TestProjectTest的目录一起Copy到刚才的新建的目录中E:/GitRepository,在Git GUI中,选择“重新扫描”,这时候,在左侧会显示“未缓存的改动”,把这些文件全选,然后选择菜单“提交”-“缓存为提交”,这时,左侧“已缓存的改动”将显示刚才的文件,然后输入注释后单击“提交”按钮。



接下来,我们要把这个TestProject上传到服务器的Repository上去。我们先要生成一个Public SSH Key(以后在Eclipse也会用到)来验证您有权限上传文件。点击菜单“帮助”—“生成Public SSH Key”,然后复制这个KeyCopyGitHubRepositoryAdmin TabDeploy Keys用户可以自己找一下,现在可以上传了,选择菜单“远端”—“上传”,如图:



如果一切顺利,GitHub上应该可以看到您上传的项目了:)


接下来可以不需要Git GUI这个软件了,打开Eclipse,先把Eclipse中刚才那个TestPorject删除,选择菜单“File”-“Import”-“Git”-“Git Repository”-“Next”,如图:



URI填入GitHub上提供的URIProtocol处选择“git+ssh”URI处会自己改变,这个不用管,“Next”,如果是第一次操作,会提示你创建“我的文档”下ssh目录下保存一些信息,这时候把刚才Git GUI生成的Public SSH Key的文件拷贝到“我的文档”的ssh文件夹下(我的Vista的路径是C:\Users\我的用户名\.ssh\Eclispe读取验证文件的路径和Git GUI读取的不一样,所以要做这一步),接下来一路Next,就会把GitHub上的TestProject导入进来了,完了会在Workspace下新建一个和Repository名字一样的目录test,下面都是保存的Git的项目,接下来的操作和之前SVN的操作基本上差不多都是在Team菜单下操作了,Git概念下的CommitCommit到本地的Repository的,如果要上传到服务器,请选择“Push to…”,接下来的画面如图选择:



那以后要新建项目到Git Repository怎么办?

先把新项目的结构文件拷贝到test目录下,然后Eclipse下“Import”,“General”,“Existing Projects In Workspace”,导入后,右键项目—“Team”—“Share Project..”—接下来选择Git,下一步选择“Search for existing git repositories”就可以了。我试过,直接在Eclipse中新建Project,然后点Team-Share Project..是不行的。


步骤是有点繁琐,或许这个插件还不成熟,我摸索下来是这样子,供读者分享,如果各位有更好的方法,请留言指正,谢谢!