找回密码
 FreeOZ用户注册
查看: 5799|回复: 3
打印 上一主题 下一主题

[论坛技术] 用GIT和Dropbox建立分布式版本控制环境

[复制链接]
跳转到指定楼层
1#
发表于 5-8-2010 21:10:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x

GitGit简而言之是个分布式的版本控制工具,由Linus开发,一开始用于Linux kernel的版本管理,后来逐渐流行开来,成为很多Open Source项目的版本控制系统。 这篇文章目的不是详细介绍Git的用法,有关Git的一些学习资源可以参考下面罗列的一些链接。对于一个时间和地理分布都很随意的松散的team来说,选择Git作为版本控制工具是一件十分自然的事情。就像这篇文章所说的一样: If version control systems were airlines. \"\"




有关GIT的参考资料



下载: git 首页, Windows版: msysgit , Mac OS X版



Dropbox
Dropbox是个很简单易用的网络存储服务,你可以把Dropbox想像成一个随身的U盘,比如你有3台电脑,一台在家里的Windows, 一台Macbook笔记本,还有一台是办公室的开发用的机器,比如是安装的Linux。你是否在你的U盘里存放那些你时时都要用的一些文件呢? 比如MP3, 一些照片,一些PDF文件,WORD文档,正在编写的代码,未完成PPT演示文稿之类。这个U盘就成了你的命根子,它是如此得重要,以至于你经常在各个机器上手工备份好几个copy。可是也许有一天你忘记带了,也许有一天你把它给弄丢了,或者突然坏掉了....即使这一切都没有发生,天长日久,你是否会纠结于U盘和各个备份之间的同步问题呢? 哦,my Lady Gaga,请告诉我哪个文件是最新的......于是你就这样杯具了


Dropbox就是为了解决这个烦恼而来,只要你到 dropbox  注册一个用户,并在你使用的各个电脑上安装对应的Dropbox客户端,你就自动拥有了2G的免费空间,Dropbox会默默地为你在各个电脑间进行同步,你再也不需要记得必须带U盘了,不需要担心RP不好导致U盘坏掉了,不用担心版本问题了(Dropbox自带一定程度的版本管理,比如删除的文件,在1个月内还可以恢复), 如果你嫌2G空间太少,你可以邀请你的朋友也去注册一下,Dropbox会为此奖励你额外的空间,直到满8G免费空间为止,需要更多空间,就要掏银子了


其实和Dropbox差不多的网络存储服务还有很多,之所以选择Dropbox,有以下几个原因:
1. 由于使用rsync协议同步,从而速度足够快,仅传输变化的内容,这对软件开发来说很重要
2. 客户端非常易用,而且各个主流操作系统都支持,现在甚至可以在iphone, ipad之类的移动设备上使用了
3. 免费的空间容量足够大,host几个大项目的代码仓库基本上也够用了
4. Dropbox提供public folder功能,只要把文件夹放到Dropbox的Public目录,你就立即拥有了一个web server
5. Dropbox用户间可以共享文件夹,并能够设定读写权限,这又是一个方便协作的特性


Dropbox相关的其他参考资料

.
当GIT遇到Dropbox

OK,开始进入正题,我们的目的是,把免费的GIT和免费的Dropbox结合起来,来建立一个很方便的分布式版本控制环境。假如,你有这么一个需求:
  • 足够的存储空间 (至少不能能像Google Code的那种100MB那么吝啬)
  • 不受限制的软件仓库数量 (很多免费版本控制服务对项目仓库个数有限制)
  • 安全的访问
  • 有选择公开或者不公开软件仓库内容的自由(github.com, gitorious.org, code.google.com, sf.net之类的都强制要求代码公开)
  • 可以随处访问和使用,甚至在没有网络的时候
  • 没有操作系统平台限制
  • 不受限制的协作:不受地理限制,不受人数限制



下面我们来一步步利用GIT和Dropbox来实现以上功能,假设我们使用Windows平台:
首先,安装msysgit
这个Windows般的Git工具,目前的最新版。安装过程很简单,不在赘述。
然后注册Dropbox帐号,并安装Dropbox Windows客户端, 安装过程也很简单。然后进入My Dropbox目录,建立一个GIT专用目录,比如repos,现在打开GIT Bash, 输入如下命令:


cd    /path/to/My Dropbox/repos

如果是复制现有的git repository
$ git clone --mirror /path/to/my-killer-project.git



在另外一个非Dropbox目录建立工作区,比如C:\workspace

$cd C:\workspace
git clone /path/to/My Dropbox/repos/my-killer-project.git



day1 开始干活.....
git checkout master   

git pull   //得到最新的代码
git checkout -b cool-feature-branch   //建立工作分支
git commit
git commit
....
git checkout master //回到master 分支
git merge cool-feature-branch
git push //提交到Dropbox git repository


for(;;) {
      day2...dayN, 重复day1的工作。。。。。
}


更多的GIT技巧,请参考上面的GIT相关资料。

协作开发
协作有两种方式,一种是共享GIT repository目录给另外一个GIT用户只读,对方也给自己只读共享他的GIT repository. 比如, Charles和Bob, Charles来说 My Dropbox\repos\my-cool-killer-project.git是自己的git repository, 可以push自己的commits到这个repository。 My Dropbox\repos\Bob\my-cool-killer-project.git 是Bob共享给自己的他的只读repository 。 这样,只要Bob提交了新的代码,Charles就能看到这些变更。Charles如果想使用Bob的新提交的代码可以这样:


cd my-cool-killer-project
git remote add bob “\path\to\My Dropbox\repos\Bob\my-cool-killer-project.git“
git fetch bob
git checkout -t -b bob-master bob/master
git checkout my-working-branch
git merge bob-master    //引入bob的最新代码


网络上其它一些介绍GIT的文章:
1. http://stackoverflow.com/questio ... ogether-effectively
2. http://tumblr.intranation.com/po ... pbox-git-repository
3. http://blog.rogeriopvl.com/archives/using-git-with-dropbox/
4. http://solutions.treypiepmeier.c ... e-git-repositories/
5. http://stuffthathappens.com/blog ... pbox-live-mesh-git/
6. http://www.cultiv.nl/blog/2010/1 ... -central-repository
7. http://random-rails.blogspot.com/2009/08/on-version-control.html
8. http://andyjeffries.co.uk/articl ... ermediate-git-users
9. http://www.kodierer.de/post/391593745/git-dropbox-love
10. http://nvie.com/git-model

[ 本帖最后由 coredump 于 5-8-2010 21:12 编辑 ]

评分

参与人数 2威望 +60 收起 理由
ubuntuhk + 30 谢谢分享!
trisun + 30 谢谢分享!

查看全部评分

回复  

使用道具 举报

2#
发表于 15-7-2011 13:47:22 | 只看该作者
I love git, too!
回复  

使用道具 举报

3#
发表于 18-7-2011 13:56:26 | 只看该作者
很有用,可惜DROPBOX国内被墙
登录后也去搭一个玩玩
回复  

使用道具 举报

4#
发表于 19-7-2011 17:23:13 | 只看该作者
就是不知道dropbox安全不安全
虽然不见的值什么钱,但版本库还是稳妥一点好。。。

其实github很不错就是太贵了
回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+10, 20-4-2024 14:31 , Processed in 0.027637 second(s), 22 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表