以前不太在意GitHub是因为印象中他一直是托管开源代码的,适合大家分享开源代码。最近感谢党和政府对它的XX,也使我重新关注起它来。才发现GitHub也是可以托管私有代码的,不过要收费
最便宜的是一个月7刀,支持5个私有库,但麻烦的是GitHub只支持信用卡美元付款。还好国外网站对教育事业真是颇为支持,在网站主页的右下角有Students&Teachers,发现只要确认学生的身份,即可免费使用7美元这个坎的micro plan,认证方式便是绑定edu结尾的校园邮箱。搞定后,很快GitHub发来邮件,确认后即可免费使用两年。
之后就是对于GIT的配置过程,这个在GitHub的网站上有一步一步的详细介绍(),配置完成后,就正式开始将本地工程迁移至GitHub上了。
这一步都是在网页上完成的,登录GitHub后,在网页右下角点击New Repository,进入Create a New Repo页面,如果此时已确认学生身份或是已付款,即可选择Private这一项
填写Repository名称,介绍可填可不填,最下面的Initialize this repository with a README我没有勾选,不需要他帮我初始化库,此时完成了GitHub那边的私有库的建立。
将已有工程上传至GitHub
以名为HelloAndroid的Android工程为例,此工程即为存放在本地硬盘上的私有工程,打开终端使用CD命令进入HelloAndroid工程的位置,之后便是使用GIT命令将此工程上传至GitHub(Windows及Mac下也有图形化界面操作的软件)
git init //此为初始化本地库git add AndroidManifest.xml //以下所有的git add即将本地工程文件夹中的所有项目添加进索引中git add srcgit add res……git commit -m "first commit" //为提交的commit添加注释说明,fist commit处可随意填写git remote add origin git@github.com:yourname/helloandroid.git //"git@github.com:yourname/helloandroid.git"这一部分在之前网页上建立库后会给你,yourname即你的GitHub账户名,helloandroid即你所建立的私有库的名称,这一步将本地目录连接至GitHub端的私有库下git push -u origin master //这一步便是把本地工程push到origin这个地址master分支下
至此便开始将本地工程提交到GitHub上,提交完成后,在GitHub网页的HelloWorld私有库下应该可以看到工程的所有文件。注意的是,对于Android工程,并非所有文件都要git add到索引中,比如bin文件夹和gen文件夹都是每次自动生成的,不需要添加入索引。
提交完成后,本地的工程也失去作用了,之后的开发工作使用GitHub来做版本控制。
为Eclipse添加GIT插件
如果使用Eclipse作为开发工具,则可以为Eclipse添加GIT插件,从此在IDE中便可方便的更新代码。使用名为EGit的插件,主页地址是,在网站中给出了下载地址,下载并安装的方法如同一般的Eclipse插件安装方法,即在Eclipse的Install new software中安装
一步一步完成安装即可。
从GitHub下载工程至Eclipse
由于之前GitHub已经接管了整个工程,此时便不再使用原有的本地工程,在Eclipse的File中选择Import,
选择Projects from GIT,在下一步中选择URL,
在URL一栏中填写GitHub上私有库的URL,其余项不需填写按照默认即可,下一步后,使用SSH连接的话,要输入之前在配置GIT时设置的SSH的密码,接下来选择分支,此时只有刚才上传的master一个分支
接下来是建立本地库,其实之前在上传本地工程至GitHub时已通过命令行建立了一个本地库,但此时要通过Eclipse重新建立一个库作为今后开发的本地库(之前的已废除不用了)
Directory中填写的地址即为建立本地库的地址,点击下一步后Eclipse便开始从GitHub上下载工程的代码,下载完成后选择中间一项
即Use the New Project wizard,出现平常新建工程的界面,对于Android工程,选择Android Project from Existing Code,已有代码的地址即为刚才设定的本地库的地址
此时便完成了将GitHub中的工程下载至本地IDE,在Eclipse的工程列表中可见下载的HelloAndroid的工程,样式与本地工程略有不同。
在Eclipse中更新代码并上传至GitHub的私有库中
此时便如同开发本地项目一样进行开发工作,当代码修改后,想提交至GitHub,此时在工程名称上点击右键,选择Team——Commit,出现Commit Change对话框,此处可以看到改动的文件列表,而Commit Message必须填写,即为提交的commit的注释说明,点击Commit后,此时变更只是保存在本地的代码库中,并未提交至GitHub的远程代码库中,想要将代码提交至GitHub的私有库中,在Eclipse的Perspective窗口中选择Git Repository Exploring
在左侧工程列表中可以看到GIT的更多信息。Local下便是本地代码的版本,而Remote Tracking下则是远程GitHub中代码的版本,在Remotes——origin下,红色剪头的项目上右键选择Push,即可将代码推送至GitHub端的私有库中。
团队合作
因为此时的工程存放于GitHub的私有库中,即确保了代码的私密性,但开发团队不是一个人,此时在GitHub的网页上打开此库的页面,选择Settings
如果开发团队的其他人也注册了GitHub的账户,此时便可在此将其添加至Manage Collaborators,添加后,在他的库列表中也可看到此私有库。团队成员经过之前的设置后,即可同样进行开发工作。
从GitHub的私有库中更新本地工程的代码
如果开发团队其余成员也提交了代码,则此时GitHub上的私有库中工程的版本比本地工程的版本新,此时要做的就是更新本地代码至最近版本,依旧是之前的Git Repository Exploring窗口的列表
在Remotes——orgin下选择绿色按钮那一项,即可连接GitHub端的远程代码库,检查是否有新版本,若有则会进行更新,更新后在Braches——Remote Tracking下的版本便和GitHub的私有库中最新版本一致,而本地工程(即Local下)的代码并未更新。此时要将本地代码与远程更新来的代码进行合并,在Local下的master上点击右键,选择merge,即混合代码,弹出Merge Mange对话框
与本地代码Merge的对象自然是Remote Tracking下的远程代码,点击Merge后OK即可,此时开发团队其余成员更新的代码已经在你的工程中得到更新。