您的位置:首页 > 产品设计 > UI/UE

在ProjectLocker上搭建自己的GIT服务器

2011-07-21 13:51 471 查看
ProjectLocker是一个提供项目代码托管服务的服务商。免费账户可拥有300M的空间,最多可以建立3个项目,供最多3人的开发小组使用,对于自己业余时间开发的小项目来说足够用了,免去把代码放在U盘上拷来拷去的麻烦了,万一碰到U盘挂了或者丢了,那就悲催了。

ProjectLocker对于托管的项目支持两种版本管理系统,Subversion和GIT。SVN地球人都会用,GIT比较反人类,一开始根本摸不着头脑,其实结合TortoiseGIT是相当方便的。这里介绍一下怎么做。

首先要去http://www.ProjectLocker.com上注册一个免费账户,Account Type选免费的那种,Initial Repository Type选Subversion或者GIT都可以,在添加项目的时候可以改。注册成功后会往你邮箱发一封欢迎信,然后登录https://portal.projectlocker.com就可以开始添加、管理自己的项目了。

现在账户下还没有项目,先添加一个项目,在左边的列表中点击Add Project,填写项目名称和描述,版本库管理方式选GIT,最后点击Create Project,就完成了项目的创建,相当简单吧?



接着我们制作公钥和私钥对。来这里下载PuttyGen并运行,点击Generate,让鼠标光标在界面上的空白区域随意乱动,让进度条走到头,就算完成了。





先保存私钥,点击Save private key将私钥保存为ppk文件,这里我没有给私钥设定密码,如果需要可以在key passphrase和Confirm passphrase中输入密码然后再保存ppk文件。不要关闭PuttyGen,接着需要把制作好的公钥放到ProjectLocker上,登录http://portal.projectlocker.com,在左边的列表中选择Manage Public Keys
-> New Key,然后将上图中红框圈出来的公钥串,复制粘贴到Key这一栏中。



最后要做的就是配置好本机的GIT客户端了,我使用的是msysgit+tortoiseGIT。

首先在新建本地仓库。在文件夹空白处右键,选择Git Clone,有三个地方需要设定,第一是URL,回到http://portal.projectlocker.com, 在Account Status中列出了当前有效的项目列表,每个项目都标注了对应的GIT URL;第二是本地文件夹,注意会自动在当前文件夹下建立一个子文件夹来作为本机仓库,第三是私钥,选择之前保存的私钥的ppk文件的路径即可。



设定界面如下:



点击OK,如果私钥有密码保护,这时候需要输入私钥密码。本机仓库建立完毕。



建立好本机仓库后,往其中添加代码文件。将代码文件拷入或者干脆在这个文件夹中建立新项目,删去不必要的临时文件后,执行Git Add命令:



需要让你确认改动:



完成(此时也可以就直接commit到本机的GIT仓库,但是一般我不这么干,等每个功能写完测完工作正常后再一起checkin):



一个功能块写完并测试正常不会引起build break后,就可以checkin到本机的GIT仓库了,这时就可以使用git commit命令:



写一些关于本次change的comments,方便管理:



这样就算checkin完成了。从这里可以看出GIT这种分布式版本控制和集中式版本控制的最大区别,就是checkin都在本机进行,本机的仓库随便怎么折腾都行,反正就你一个人用。如果是集中式的版本控制,在checkin之前就必须非常谨慎,万一引起了build break,就严重影响别人的工作。举例来说,在Microsoft,除了TFS,我们很多的项目都使用Source Depot来管理,这是一个基于命令行的集中式版本控制系统,一个项目往往是分布在世界各地的团队一起工作,大家都往Source Depot服务器上checkin,中国这边下班checkin自己的changelist,美国那边的team正好一大早就能sync到最新的代码,等美国那边的工程师下班前checkin了,中国这边第二天一早就能拿到最新的change,所以我们一大早来的第一件事就是先sd
sync然后视情况做一个full private build。如果你的checkin引入了build break,那当天的official build就会歇菜需要重来,大型的项目做一次Full build需要数个小时,像Windows这种项目做一次Full build需要按天来计算,不仅tester无法完成当天的工作,其他国家的工程师还得在你睡觉的时候先帮你改代码,所以在Microsoft,checkin是一件要谨慎的事情,尤其是和其他国家的团队一起开发的时候,checkin之前都必须要做private build和buddy
build,再三确保自己的change不会导致build break,搞得人都有点强迫症了,如果改动很重大,还得再让tester帮你在buddy build上测试一下你的功能正常工作且不会导致regression,加一道保险。如果使用分布式版本控制,就会减轻这种遇到不负责的checkin导致大伙都歇菜的问题了。当然使用集中式的版本控制系统也有自己的办法,就是开辟新的branch,大家都在分支上搞,但是问题是当分支多了之后,分支之间来回地做FI(Forward Integration)和RI(Reverse
Integration),会变得极其混乱。

好了,我们的日常改动虽然都在本机进行,但是最终还是要发布出去给其他的工程师使用的,这时候就需要把本机的改动push到ProjectLocker的主服务器上去了,使用push命令就可以了,很简单,任何时间都可以做,可以在每次commit之后就立即push,也可以在任何时候选择执行push命令:



这时TortoiseGIT提示你要选择远程仓库的哪个branch,这里就选择默认的master:



大功告成:



去ProjectLocker上看看结果:



text.txt文件已经顺利地上传到ProjectLocker服务器上了。

回到家,如果需要继续工作怎么办?原样在家里的电脑上建立本机仓库,然后使用Clone命令将远程仓库克隆到本地即可。

第二天回到办公室,想要接着昨晚的进度接着做,怎么办?使用Git Sync将远程仓库的改动同步到本机仓库:





同步完成:



 看看我都改了啥?



全文完~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息