Git:更好的SVN
svn做了什么
svn其实只做了一件事情:明确了文件的变动记录和变动人
这样做有什么好处呢?
- 如果文件改错了,便于回溯,找出正确的版本。
- 明确了文件的每次变动,便于做review,针对代码尤其有效。所以SVN也被称为VCS工具,即
版本控制系统
。
svn做不好什么呢?
用过svn的人,应该都了解svn有一个很标准的目录结构,长这个样子:
svn://proj/
|
+-trunk
+-branches
+-tags
这是一个标准的布局,trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改)。但是具体这几个目录应该如何使用,svn并没有明确的规范,更多的还是用户自己的习惯。
这个标准是人为规定,实际操作中难以管理,因为branche、tag都是从trunk复制中复制出来的代码,在磁盘上同时存在,用户需要同时管理多个目录、多份文件。
git怎么管理branche、tag?
很简单。
- 每次工作选择一个branche作为开发上下文
- 每次提交用一个SHA1来做唯一标识。同时支持将这次提交标识为tag。
这样,在本地永远只有一份代码。透过提交记录,可以随时切换到任意branche的任意版本。
快速入门
好用的git客户端
- SourceTree
- TortoiseGit