今天闷着头看了半天 git,终于明白了 git 的基本工作原理。想提高你对 git 的认识,请移玉步到 http://progit.org/book/zh,中文翻译很不错,感谢先行的兄弟们!

以前项目组进行版本管理的时候,采用的是 tortoiseSVN,正如某君所说,SVN 并非一无是处,但是总有又痛又痒的感觉。学习 SVN,我有了和其他人进行版本协作的经验,不过发生合并冲突的机会还是比较少的(一般每个人负责一个单元),常用的操作就是 checkout 然后 coding。不得不说,由于和服务器的交换速度太慢,且小文件居多,每次 checkout 和 commit 都非常痛苦。那时候就幻想,为什么版本管理不能放在本地呢

后来,做另一个项目的时候,更加晕菜。其实真正写代码的人就两三个,但在实验室写的代码经常要带回宿舍看,一来二去的比较混乱。我们又是那种想到哪改哪的人,出错的时候总想回到原来,要有时光机多好啊。最后实在没办法,想出了一个笨办法,每次成功运行就打包一次,标上日期。那段日子简直是中世纪!!!

最后,git 慢慢进入了我的视野。我开始明白到,分布式版本管理是需要的,但不是最急迫的。我最需要的,是一个版本管理系统协助我进行 coding。git 有 tag,代码每次成熟到一定阶段,就可以打上一个 tag,灰常方便。 当然,git 最强大的是 branch。