前言
关于代码控制工具,一般而言,如果是开发团队,我们常常选择的是SVN、CVS;但是怎么管理我们自己的代码呢?那就用GItHub吧,这样就可以不用自己准备一台网络服务器了。
介绍
GitHub是一个属于自己的控制代码工具,和SVN功能相似,只是这里的服务器在网络上。GitHub的使用也分桌面形式的客户端和集成Eclipse的插件。如果使用客户端请下载GitHub for Windows,这里介绍的是Eclipse集成EGit。
创建资源库
1、注册一个账号
首先,需要注册一个账号。https://github.com/
2、创建资源库
在主界面的右下角有这样一个区域,如图。点击New repository,创建一个新的库。
在 Repository name 栏里写上新建库的名字,如“HelloWorld”。其它可写可不写。等你熟悉了再去深究吧。点击下方的 Create repository 按钮。
Eclipse集成EGit
这里使用的是MyEclipse10。
集成方式和SVN类似,有两种:Eclipse中在线更新安装和dropins中放入下载的集成包。其中第一种不建议使用,总是下载不下来。
接下来探讨第二种方式:dropins。
1、 下载Eclipse集成EGit的插件,GitHubfor Eclipse
百度下很多的,这里不细说了。
2、 安装
a) 方式一(已验证)
将下载的插件解压后,复制到${MyEclipse}/MyEclipse 10/dropins目录下。(注:Eclipse不同的版本,目录可能不一样,安装插件的方式也可能不一样。)重启MyEclipse。
b) 方式二
在dropins文件夹下通过新建一个*.link文件,然后文件中输入PATH=%PLUGINS_PATH%,这样的方式,可以不用担心以后插件过多时出现混乱,也方便移除相关插件。具体内容如下图中所示:
其中的PATH=%PLUGINS_PATH%可以有多行,每一行代表着不同的插件路径,实现和SVN的共存。
3、 设置
点击 工具栏 >Preferences > Team 下多了一个 Git 的分支。修改一下“Default repository folder”的值。这是远程的库在本地的一个路径。【可以选择MyEclipse的工作目录,当然也可以自己新建一个目录。】建议直接设置为MyEclipse的工作目录,和Eclipse的其他项目一样都在一个工作目录维护。
上传项目
1、 新建Java项目
接下来新建一个HelloWorld的项目吧。这个就不多说了。
2、 上传本地
项目建好后,选中项目,右键 > Team > Share Project 。你会看到这样的提示,如图:
提示缺少环境变量 HOME 。少了咱就加呗!
右击 我的电脑 > 属性,点击选项卡 高级 > 环境变量 > 系统变量 > 新建 ,如图。在 变量名 中输入 HOME , 变量值 建议和上面的“Defaultrepositoryfolder”一样。点击确定。重启Eclipse。
重复上一步操作——ShareProject ,这次应该不会再出现上次的提示。在出现的界面中选中Git ,点击Next 。
这里说明一点,(一)如果希望咱们的EGit项目和Eclipse中项目位置隔离的话,点击红色“Create”部分,如下图:
最后点击 Finish即可,这样我们的项目不会存在于Eclipse的工作目录中。(二)如果想在Eclipse项目中保存Repository就在如下的界面中,在红色标注的地方打√ ,选中项目后,点击 CreateRepository ,点击 Finish 即可,这样,我们的项目和Eclipse的其他项目一样,在同一个目录。
选中项目,右键 > Team > Commit ,出现如下图的界面。输入提交的备注信息(Commit message),选中要提交的文件,点击Commit 。
(注:如果你只是要上传文件,那个“.project”的文件可以不提交,那是Eclipse的一个配置文件,主要作用就是表明这个文件是一个Project。当你用另一台机器下载这些代码时,如果有这个文件,可以用Eclipse直接导入,Import Project)
3、 提交到GitHub账户
选中项目,右键 > Team > Remote > Push ,出现如下界面。
回到GitHub的主页面,点击新建的库“HelloWorld”,在浏览器的右侧出现如下片段,如图。在 Code 栏的最下方提供了不同的下载方式。笔者选择 HTTPS ,复制后面的地址,粘贴到上图中的“URI”栏里。
User/Password就是你的GitHub的账户和密码。“Storein Secure Store”打√ 。点击 Next ,出现下图界面。
a、 选择 Source ref
b、 点击 Add AllBranchesSpec
c、 Force Update 一定要选中。如果不选中,下一步就会报错。这个错在GitHub的Help里可以搜索到,但我没怎么看懂。只知道选中“Force Update”可以避免这个错误。
d、 点击 Finish
OK,到你的GitHub的主页面看一下,HelloWorld库里是不是多了些文件?
4、 同步
a) 本地同步到网络
修改项目代码。
本地上传:Commit(同上)。
远程同步:Push(同上)。
GitHub主页面查看。
b) 网络同步到本地
在页面上点击 Edit 按钮,加入如下代码
(1)在下方的Commitmessage 栏里输入你的备注信息,如“Add from Web”
(2)点击CommitChanges 按钮
页面上修改完成。如何更新到本地呢?
选中项目,右键 > Team> Pull ,你会发现代码已经更新下来了。
5、 问题
解决The current branch is not configured for pull No valuefor key branch.master.merge found in config
1) 在本地工程目录找到config文件(我的是在E:\rocket\rocket\.git);
2) 修改config文件内容为:
[core]
repositoryformatversion = 0
filemode =false
logallrefupdates = true
[branch"master"]
remote =origin
merge = refs/heads/master
[remote"origin"]
url =https://github.com/androidzhaoxiaogang/rocket.git (修改为自己的url)
fetch =+refs/heads/*:refs/remotes/origin/*
3) 再执行pull方法,发现工作ok了
下载项目
确保你的GitHub的库中有 .project这个文件,否则Eclipse不知道它是一个Project,也就无法导入,但可以作为普通文件下载下来。
在Eclipse的PackageExplorer栏空白处右键 - Import ,选择 Git - Projects from Git ,点击 Next
接下来选择 URI ,点击 Next,在下图中的“URI”栏里填入你的远程库HelloWorld的地址
User和Password栏里填入GitHub的账号和密码
以下几步都可用默认值,直接 Next
问题:
注:请确保你的GitHub上的库名和项目名称是一样的。笔者的库名为HelloWorld,而当初在Eclipse中创建的项目名称为HelloWorld4GitHub。所以导致在这一步总是报错。
解决办法:
1、到GitHub主页上点击 Admin 按钮,修改库名称
2、到GitHub主页找到.project文件,修改它的<name>节点
另外还有一点想说明的,如果你的远程库里面没有 .project 文件,是不可能导入成功的。直接 Cancel 掉。到你的Eclipse的工作目中看看,是不是已经有 HelloWorld 的文件夹了。也就是说到这一步,库文件已经被下载下来。只是因为没有Project的标识文件,Eclipse无法识别。
项目导进来后,发现报错。再看它的目录结构,你会发现没有JDK的包。
没有咱就加啊!
选中项目,右键 > BuildPath > Add Libraries ,加入你本地的JDK环境即可。
加上后,发现它还是报错。原因是Eclipse将src这个目录当成了普通的文件夹,而不是Java的source目录。
怎么将一个普通的Folder转换成Java的SourceFolder呢?
选中src目录,右键 >Build Path > Use as Source Folder。
(注:如果定义了包,即package,首先 右键 > Build Path> Exclude,然后再 Use as Source Folder)
OK,项目可以正常使用了。